W reagować rodzimej projektu tworzę obiekt, a następnie przekierowanie do ekranu do nowo utworzonego obiektu stronie szczegółów i dostaję ten błąd:Klient Apollo podaje mi błąd "Sklep już zawiera identyfikator" - co to znaczy?
Możliwa Unhandled Obietnica odrzuceniu (ID: 0): Błąd sieci: Błąd przechowywania: aplikacja próbowała zapisać obiekt bez podanego identyfikatora, ale magazyn zawiera już identyfikator XYZ dla tego obiektu.
Patrząc w bazie danych widzę, że element został poprawnie utworzony w poprzednim kroku. Przejście do tego samego ekranu i elementu na liście (nie po utworzeniu i przekierowaniu) wydaje się działać dobrze. Czy muszę czekać lub w jakiś sposób ustawić czas, aby sklep apollo pozostał poprawny?
używam standardowego klienta apollo @graphql wiążący/owijania
gql:
query getEvent($eventId: ID!) {
Event(id:$eventId) {
id
headline
photo
location
startTime
creator {
username
photo
}
}
}
`;
A oto fragment kodu
@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 {
...
Miał ten błąd, gdy nie było potrzeby identyfikatora w zagnieżdżonej właściwości, ale potrzebował identyfikatora na poziomie katalogu głównego, więc ta odpowiedź była pomocna. Byłbym wdzięczny za wyjaśnienie, dlaczego. –
@ ABCD.ca Nie jestem w 100% pewny, ale wydaje się, że niektóre buforowanie wyników trwa, więc musisz podać unikalny identyfikator klienta apollo, aby go pobrać. Ma sens, ale nie miałem tego problemu przed wydaniem wersji 1.0.0, więc tymczasowo zmieniono na 0.10.1 – ViggoV