Невозможно импортировать и использовать объект хранилища избыточных данных за пределами реагирующих компонентов - для ключа «ключ» не предусмотрен редуктор - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь использовать избыточный магазин за пределами реактивных компонентов. Я хочу получить доступ к файлу store внутри api.js, чтобы можно было отправлять заголовки авторизации в вызовах API

У меня есть файл store.js с содержанием ниже

import rootSaga from "./rootSagas";
import rootReducer from "./rootReducer";
import createSagaMiddleware from "redux-saga";
import { applyMiddleware, compose, createStore } from "redux";
import Storage from "@callstack/async-storage";
import { persistStore, persistReducer } from "redux-persist";

const persistConfig = {
  key: "app",
  storage: Storage,
  whitelist: ["user"]
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

/** Saga Middleware */
const sagaMiddleware = createSagaMiddleware();

/** Create middlewares for redux */
let middlewares = applyMiddleware(sagaMiddleware);

/** Create redux store */
const store = createStore(persistedReducer, compose(middlewares));
/** run saga watchers */
sagaMiddleware.run(rootSaga);

export const persistor = persistStore(store);

export default store;

Когда этот магазин был импортирован в App.js, приложение работает нормально. Но когда я попытался импортировать то же самое в api.js, он жалуется на приведенную ниже ошибку

index.js:1 No reducer provided for key "onBoarding"

Может ли кто-нибудь помочь мне решить приведенную ниже ошибку, которую я получаю

enter image description here

index.js:1 No reducer provided for key "onBoarding"
TypeError: Cannot read property 'watchUser' of undefined

Пример хранилища с воспроизводимым сценарием можно найти здесь .

Шаги для запуска этого приложения

  1. Клонировать репозиторий.
  2. Оформить заказ на redux ответвление.
  3. Запустить yarn install в терминале.
  4. Запустите yarn workspace web start для запуска веб-приложения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...