React Apollo 2.1.11 awaitRefetchQueries不等待refetchQueries在变异完成之前完成

时间:2018-09-29 06:05:55

标签: react-apollo apollo-client aws-appsync

预期结果: 设置为true的awaitRefetchQueries将确保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,而是使用构建在Apollo之上的AWSAppSyncClient,我想知道是否必须同时更新AWSAppSyncClient所需的react-apollo和apollo-client#3169,以便awaitRefetchQueries将正常运行。

更新-package-lock.json包含apollo-client@2.3.7,并且该发行版确实包含awaitRefetchQueries功能,请参见此处。从2.3.6版开始,支持awaitRefetchQueries(更改日志参考)。

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

0 个答案:

没有答案