Ошибка конфигурации магазина Redux-saga с combReducer - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь настроить свой магазин саги с помощью Redux-saga, но получаю сообщение об ошибке Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.

Я проверил документацию по Google, откорректировал мой код, но проблема все еще есть, поэтому я надеюсь, что кто-то может указать на меня. Спасибо!

если я изменю этот код const sagaMiddleware = ReduxSaga.default(); в const sagaMiddleware =()=> ReduxSaga.default(); Я получил другую ошибку о: sagaMiddleware.run is not a function

Main.js

const { createStore, applyMiddleware } = require("redux");
const { createSelector } = require("reselect");
const ReduxSaga = require("redux-saga");
const createSagaMiddleware = require("redux-saga");
const reducer = require("./reducers/index");
const { workerSaga } = require("./sagas/sampleSaga.js");

const sagaMiddleware = ReduxSaga.default();
const store = createStore(reducer, applyMiddleware(sagaMiddleware));

sagaMiddleware.run(workerSaga);

Переходники / index.js

const { combineReducers } = require("redux");
const sample1 = require("./sample1");
const sample2 = require("./sample2");
const rootReducer = combineReducers({
  sample1,
  sample2
});
module.exports = rootReducer;

Переходники / sample1.js

const {
  STARTS_LOADING_SAMPLE,
  FETCH_SAMPLE,
  COMPLETE_FETCHING_SAMPLE
} = require("../actions/index");

const sampleInitialState = {
  fetching: false,
  complete: false,
  sample1: []
};
//switch statement....

module.exports = {
  sample1: (allReducer, sampleInitialState)
};

1 Ответ

0 голосов
/ 21 июня 2019

Редуктор - это чистая функция, которая принимает предыдущее состояние и действие и возвращает следующее состояние. Но вы экспортируете объект вместо функции в файле Reducers/sample1.js. Попробуйте изменить это на что-то вроде этого:

...
module.exports = function(state = sampleInitialState, action) {
   // switch statements
};

Подробнее о редукторах: https://redux.js.org/basics/reducers

...