我正在尝试将 Apollo 客户端 (graphql) 集成到我已经使用 reactjs 和 redux 开发的应用程序中。
根据这些信息,我知道 Apollo 客户端有一个商店,因为 redux 也有一个。
在应用程序中与 2 家商店合作好吗?可以只开一家店吗?
最佳答案
Apollo Store 将直接与 GraphQL 服务器通信并存储从它返回的数据。 Apollo Store 是来自 GraphQL 服务器的所有数据的客户端存储库。
我确实相信只使用一个是可能的,我也相信你应该只使用一个 Store 并且那个 Store 应该是 Apollo Store 因为它是与 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')
);
关于redux - 管理 Redux 和 Apollo 的商店,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663571/