Dans un projet natif réactif, je crée un objet, puis je redirige l'écran vers la page de détails de l'objet nouvellement créé et j'obtiens cette erreur:
Possible rejet de promesse non gérée (id: 0): Erreur réseau: Erreur de magasin: l'application a tenté d'écrire un objet sans ID fourni mais le magasin contient déjà un ID de XYZ pour cet objet.
En regardant dans la base de données, je vois que l'élément est correctement créé à l'étape précédente. Naviguer vers le même écran et le même élément dans une liste (pas après une création et une redirection) semble fonctionner correctement. Dois-je attendre ou, d'une manière ou d'une autre, définir un calendrier pour que la boutique apollo reste correcte?
J'utilise le client apollo standard @graphql binding/wrapping
gql:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
username
photo
}
}
}
`;
Et voici un extrait de code
@graphql(getEventGql,{
options: ({route}) => {
console.log('route params', route.params);
return {
variables: {
eventId: route.params.eventId,
}
}
},
})
@connect((state) => ({ user: state.user }))
export default class EventDetailScreen extends Component {
...
Vous devez également ajouter id
au champ creator
:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
id
username
photo
}
}
}
En général, assurez-vous d'ajouter id
à toutes les sous-sélections de vos requêtes.