Управление магазинами Redux и Apollo

Я пытаюсь интегрировать клиент Apollo (graphql) в свое приложение, которое уже разработано с помощью reactjs и redux.

С информацией, которую я получил, у клиента Apollo есть магазин, как и у redux.

Хорошо ли в приложении работать с 2 магазинами? возможно ли иметь только один магазин?

10 вопросов на собеседовании по React js
10 вопросов на собеседовании по React js
Вопрос: Что такое React JS? Каковы преимущества использования React?
2
0
71
1

Ответы 1

Магазин 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')
    );

Другие вопросы по теме