管理Redux和Apollo的商店

时间:2018-04-05 03:15:15

标签: redux graphql apollo react-apollo

我正在尝试将Apollo客户端(graphql)集成到我已经使用reactjs和redux开发的应用程序中。

根据我得到的信息,Apollo客户有一个商店,因为redux也有。

在应用程序中使用2个商店是否合适?是否可以只有一家商店?

1 个答案:

答案 0 :(得分:0)

Apollo商店将直接与GraphQL服务器通信并存储从其返回的数据。 Apollo Store是来自GraphQL服务器的所有数据的客户端存储库。

我相信只能使用一个,我也相信你应该只使用一个商店,而商店应该是Apollo商店,因为它与GraphQL沟通并将数据提取到您的React应用程序。

因此,如果在您的index.js文件中,您目前拥有此内容:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';

import App from './components/App';

const store = createStore(() => [], {}, applyMiddleware());

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.querySelector('#root')
);

我想你必须重构它:

import React from 'react';
import ReactDOM from 'react-dom';
import ApolloClient from 'apollo-client';
import { ApolloProvider } from 'react-apollo';

import App from './components/App';

const client = new ApolloClient({});

ReactDOM.render(
      <ApolloProvider client={client}>
        <App />
      </ApolloProvider>,
      document.querySelector('#root')
    );