我在我正在构建的一个相当大的 React 应用程序中广泛使用 Apollo,我发现自己多次面临同样的限制。
我想只在组件挂载时执行查询,以便此组件子路由的更改不会重新触发查询。我也很想保留容器模式,在容器中声明我的查询,包装我的组件并忘记它,这样我的组件本身就不会受到任何 Apollo 的影响。到目前为止,我已经能够通过制作我自己的 Apollo 高阶组件来做到这一点,该组件接受一个组件、一个查询及其选项并返回一个新组件,该组件将自动在 componentDidMount 上运行 queryData。这是代码。然后我以这种方式使用它:apolloQueryHOC(MyComponent, queryOptions);
但是在一个新组件上,我已经开始实现分页,这种方法根本不起作用/对于我实现的复杂分页逻辑来说变得太丑陋了。问题是,当我使用基本的 Apollo 容器方法时,它就像一种魅力。但它在每次路线/道具更改时运行。
所以我的问题是,有没有办法只在装载时运行“容器”查询,而不是使用withApollo
等等?