Реагировать на Apollo 2.1.11 awaitRefetchQueries, не дожидаясь завершения refetchQueries до завершения мутации - PullRequest
0 голосов
/ 29 сентября 2018

Ожидаемый результат: Значение 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

...