【发布时间】:2017-12-12 06:34:40
【问题描述】:
Redux 的Provider 组件和connect 函数通过mapStateToProps 提供了对包装组件的存储状态的引用。正如可爱的文章How to Build a Redux 中提到的那样,这样做是为了您无需引用全局存储对象或将数据无休止地传递到 DOM。
这有一个很大的优势:存储状态与 DOM 无关。您可以将任意两个元素放在页面上的任何位置,并为它们提供您想要从商店获取的任何数据。如果您有一个用于客户搜索的表单和一个客户搜索结果列表……这些表示元素的关系不会影响它们对数据的访问。
据我所知,Apollo-react 的ApolloProvider 并不认同这个原则。当我使用graphql 使用查询包装组件时,该查询的结果将作为道具提供给包装的组件。如果应用程序的其他地方需要这些结果,则必须手动传递或存储在全局引用中。特别是,从 graphql 查询返回的 props 不能向上传递到 DOM。
有没有办法让 ApolloProvider 像 redux 的 Provider 一样向应用程序的其余部分“提供”查询结果?我需要自己构建这个功能吗?或者,更好的是,我是不是误会了什么?
【问题讨论】:
标签: reactjs react-redux react-apollo