为什么在data.fetchMore期间data.loading不会变为true?

Lor*_*ren 1 react-apollo apollo-client

内部渲染:

  console.log('render', User.length, loading, networkStatus)
Run Code Online (Sandbox Code Playgroud)

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

render 100 false 7
render 200 false 7
render 300 false 7
Run Code Online (Sandbox Code Playgroud)

而我期望:

render 100 false 7
render 100 true 1
render 200 false 7
render 200 true 1
render 300 false 7
Run Code Online (Sandbox Code Playgroud)

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

docs:data.networkStatus

docs:data.loading

小智 5

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

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

PS!我还有一个使用旧版本的问题apollo-clientreact-apollo所以我不得不升级到最新版本(在撰写本文时apollo-client@1.2.2react-apollo@1.2.0),因此请确保您使用的最新版本足够使用这些选项。