сага о redux не может прочитать свойство getState из undefined

Я пытаюсь настроить хранилище React redux с промежуточным программным обеспечением saga и асинхронными действиями, а также с response-router-redux и селекторами.

Для некоторых sagamiddleware не может прочитать свойство getState, равное undefined. Не знаю почему.

моя структура каталога верхнего уровня:

./src/app.js
./src/sagas/index.js and imported sagas into this file
./src/Containers/App/actions.js constants.js appReducer.js selectors.js
./src/Containers/App/toplevelcomponenthere

app.js

import sagas from './sagas';
import createReducer from './reducers.js';

const sagaMiddleware = createSagaMiddleware();
const createStoreWithMiddleware = applyMiddleware(reduxRouterMiddleware,
sagaMiddleware(...sagas))(createStore);

const store = createStoreWithMiddleware(createReducer);
const reduxRouterMiddleware = syncHistoryWithStore(browserHistory)

//add selectors and history
import { selectLocationState } from './Containers/App/selectors';
const history = syncHistoryWithStore(browserHistory, store, {
  selectLocationState: selectLocationState(),
});

class Base extends Component {
  render() {
    return (
    <Provider store={store}>
    {children}
    </Provider>
    )
  }
}

person mibbit    schedule 21.11.2016    source источник
comment
не могли бы вы добавить код с getState   -  person Kevin Kloet    schedule 21.11.2016
comment
@KevinKloet getState внутренне ломается внутри redux-saga, см. Здесь noredux-sagarer. github.com/yelouafi/redux-saga/blob/ строка кода 1898   -  person mibbit    schedule 21.11.2016


Ответы (1)


вы неправильно применяете промежуточное ПО саги. Взгляните на пример sagaMiddlewate не принимает никаких аргументов.

Вы должны передать свою root saga в store.runSaga функцию после создания магазина, например здесь. И это корневая сага - единственная функция, которая, например, будет использовать fork другие саги, которые вы хотите использовать. Я думаю, что ваш sagas импортировал из ./sagas не одну функцию, поскольку вы применили к нему оператор распространения.

person MadNat    schedule 21.11.2016