【发布时间】:2017-10-13 09:08:09
【问题描述】:
是否有全局 loading 标志可用于 react-apollo 客户端?我有一个“页面包装器”组件,我想在所有子组件都收到它们的数据后应用 ui 效果。
我已经用 redux 设置了 apollo,所以可以随时访问商店 (http://dev.apollodata.com/react/redux.html)
我可以很容易地 dispatch 从每个从 apollo 接收数据的组件更改状态,但我希望这个 page wrapper 组件不知道它的子组件或查询。
我使用withApollo 进行了调查 - http://dev.apollodata.com/react/higher-order-components.html#withApollo -
但看不到全局 is loading 的 api。
【问题讨论】:
-
我怀疑你可以用 Apollo 包装一个 HoC 并在那里添加你的自定义逻辑。
-
我不知道
withApollo是否为全局loading状态提供任何API?我想也许是通过它的networkInterface但看起来不像? -
它不是开箱即用的。您可以使用自定义网络接口来实现它,但这似乎是适合这项工作的错误工具。我怀疑用 withCustomApollo 之类的东西包装 withApollo,你可以在那里检查加载状态。
-
但这不适用于任何一个特定的组件——我希望一个单独的组件知道是否正在进行任何 graphql 调用——除非我只弄错了
graphql()包装的组件本身将收到data/loading道具 -
哦,那您绝对可以使用自定义网络接口。包装网络接口(批处理或默认),然后每当它查询时设置它正在加载到单例变量。
标签: apollo react-apollo