3

内部渲染:

  console.log('render', User.length, loading, networkStatus)

当我打电话data.fetchMore两次时,我得到:

render 100 false 7
render 200 false 7
render 300 false 7

而我期望:

render 100 false 7
render 100 true 1
render 200 false 7
render 200 true 1
render 300 false 7

在此示例中,它按预期工作(loading变为 true):

https://github.com/zeit/next.js/tree/v3-beta/examples/with-apollo

但不在我的代码中:

https://out-bkathectgx.now.sh/

https://github.com/lorensr/graphql-leaderboard/tree/a331af803b36ee2d65c85795d747e6cf4c83ba27

文件:

https://github.com/lorensr/graphql-leaderboard/blob/a331af803b36ee2d65c85795d747e6cf4c83ba27/components/ReputationLeaderboard.js

文档:data.networkStatus

文档:data.loading

4

1 回答 1

7

我遇到了同样的问题。事实证明,您必须通过在选项中设置notifyOnNetworkStatusChange来选择加入true

http://dev.apollodata.com/react/api-queries.html#graphql-config-options-notifyOnNetworkStatusChange

PS我在使用旧版本时遇到了额外的问题,apollo-client因此react-apollo我必须升级到最新版本(在撰写本文时apollo-client@1.2.2react-apollo@1.2.0,因此请确保您使用的是足够最新的版本,以便这些选项可用。

于 2017-05-26T10:09:03.863 回答