GraphQL 和 ApolloProvider 和存储......它非常嵌套
Posted
技术标签:
【中文标题】GraphQL 和 ApolloProvider 和存储......它非常嵌套【英文标题】:GraphQL and ApolloProvider and store... its very nested 【发布时间】:2018-02-18 14:07:12 【问题描述】:所以,我通过 ApolloProvider 传递商店
<ApolloProvider store=store client=apolloClient>
现在,ApolloProvider 正在把它,商店,放在客户端。但它放置的是 store 对象,而不是实际的 reducer 对象。所以,我得到了以下内容,这对我来说似乎很奇怪..
client
---> store
-----------> getState
-----------> dispatch
但没有“状态”?我的意思是,确定我是否会调用 getState(),但这似乎与我通常在没有 Apollo 的情况下执行 redux 时完全不同。我得到了我的“状态树”……在这里,我得到了……
在使用带有 graphql 的 redux 时,“正常”或“最佳实践”是什么?
像这样访问 state 属性似乎有些过分:
if (this.props.client.state.getState().whatever.foo)
【问题讨论】:
【参考方案1】:使用查询本地状态和 React Hooks,例如:
import gql from 'graphql-tag';
import useQuery from '@apollo/react-hooks';
//...
export default () =>
const data = useQuery(gql('query GetTableFilter selectedMall @client '));
// ... do something with data.selectedMall
【讨论】:
以上是关于GraphQL 和 ApolloProvider 和存储......它非常嵌套的主要内容,如果未能解决你的问题,请参考以下文章
ReactJs - 如何将 ApolloProvider 包装在 StatsigProvider 中?
React + ApolloProvider + Typescript = "JSX 元素类不支持属性" 错误