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

Why would data.loading not become true during data.fetchMore?

内部渲染:

  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 变为真):

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

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

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

P.S. 我在使用旧版本的 apollo-clientreact-apollo 时遇到了一个额外的问题,所以我不得不升级到最新版本版本(在撰写本文时 apollo-client@1.2.2react-apollo@1.2.0),因此请确保您使用的是足够最新的版本以便这些选项可用。