我正在尝试将Apollo客户端(graphql)集成到我已经使用reactjs和redux开发的应用程序中。
根据我得到的信息,Apollo客户有一个商店,因为redux也有。
在应用程序中使用2个商店是否合适?是否可以只有一家商店?
答案 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')
);