Ожидаемый результат: Значение awaitRefetchQueries, установленное в значение true, обеспечит завершение refetchQueries () до завершения мутации и срабатывания onCompleted ().
Ожидаемый порядок завершения:
refetchQueries ()
mutate ()
onCompleted (), переход к новому экрану
Фактический порядок завершения / завершения:
mutate ()
onCompleted (), переход к новому экрану
refetchQueries ()
<Mutation
mutation={DELETE_TRIP_DECK}
variables={{ deckId: `usa` }}
optimisticResponse={{
deleteTripDeck: null,
}}
refetchQueries={() => [
{
query: GET_USER_INFO,
variables: { username: username },
},
]}
awaitRefetchQueries={true}
onCompleted={() => goBack()}>
{(
deleteTripDeck,
{ loading, error, data }
) => {
if (error) throw error
return (
<Button onPress={() => deleteTripDeck()}>
<Text>Delete trip</Text>
</Button>
)
}}
</Mutation>
Одна теория дается, что мы не используем ApolloClientНепосредственно, но вместо этого, используя AWSAppSyncClient, который построен поверх Apollo, мне интересно, нужно ли обновлять и response-apollo, и apollo-client, требуемый AWSAppSyncClient, # 3169, чтобы awaitRefetchQueries работал должным образом.
Update -package-lock.json содержит apollo-client@2.3.7, и этот выпуск содержит функциональность awaitRefetchQueries, которую можно увидеть здесь. Начиная с 2.3.6 поддерживается поддержка waaitRefetchQueries.
Package.json:
"dependencies": {
"@expo/react-native-responsive-image": "^2.0.0",
"@expo/samples": "2.1.1",
"apollo-cache-inmemory": "^1.2.8",
"apollo-cache-persist": "^0.1.1",
"apollo-link": "^1.2.2",
"apollo-link-state": "^0.4.1",
"aws-amplify": "^1.0.4",
"aws-amplify-react-native": "^1.0.4",
"aws-appsync": "^1.3.2",
"aws-appsync-react": "^1.1.2",
"expo": "^28.0.0",
"graphql-tag": "^2.9.2",
"lodash.capitalize": "^4.2.1",
"react": "16.3.1",
"react-apollo": "^2.1.11",
"react-native": "https://github.com/expo/react-native/archive/sdk-28.0.0.tar.gz",
"react-native-indicators": "^0.13.0",
"react-native-keyboard-aware-scroll-view": "^0.7.2",
"react-native-modal": "^6.5.0",
"react-native-swiper": "^1.5.13",
"react-navigation": "^2.17.0",
"styled-components": "^3.4.1",
"uuid": "^3.3.2"
},
Связанный: # 2267
Невозможно предоставить видео / скриншот / воспроизведение, потому что проект еще не опубликован, но решил попробоватьпроблема в том случае, если вышеуказанного достаточно, чтобы помочь пройти через это.Спасибо!
Первоначально опубликовано - https://github.com/apollographql/react-apollo/issues/2426