redux - 管理 Redux 和 Apollo 的商店

标签 redux graphql apollo react-apollo

我正在尝试将 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/

相关文章:

javascript - 如何在 graphql-tool 中传递查询参数?

angular - 防止 NGRX 效应产生的冗余 API 调用

reactjs - 如何在react redux-form下拉菜单的Change上获取所选值

javascript - 在 Redux/React 中交换样本数据有哪些技巧?

javascript - Apollo 服务器 : How to access 'context' outside of resolvers in Dataloader from REST API Datasource

vue.js - 如何为 Vue Apollo 导入 Apollo Client 3?

reactjs - React/Redux 从根组件调度操作?

reactjs - 使用 Apollo 替换 Redux 进行本地状态管理

graphql - 图 : No value provided for ID argument in subgraph query