GraphQL和ApolloProvider并存储......它非常嵌套

时间:2017-09-10 03:12:28

标签: redux graphql apollo

所以,我通过ApolloProvider传递商店

  <ApolloProvider store={store} client={apolloClient}>

现在,ApolloProvider将它作为商店放在客户端。但是它放置了商店对象,而不是实际的reducer对象。所以,我得到以下内容,这对我来说似乎很奇怪..

client
   ---> store
  -----------> getState
  -----------> dispatch

但没有“州”?我的意思是,确定我是否会调用getState(),但这与我通常在没有Apollo时执行redux的情况有很大不同。我得到了我的“州树”......在这里,我得到了它......

使用redux w / graphql时的“正常”或“最佳做法”是什么?

如此访问状态道具似乎过分:

if (this.props.client.state.getState().whatever.foo)

1 个答案:

答案 0 :(得分:0)

使用查询来查询本地状态和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