Я использую reselect и реагирую на сокращение. Я пытаюсь сделать селектор для базовой модальной реализации.Reselect Невозможно прочитать свойство 'get' of undefined
мой селектор
const selectModal = (state) => state.get('modal');
, который бросает ошибку
Cannot read property 'get' of undefined
редактирования: Это было предложено мне показать, как я называю выберите модальность, хотя это не должно иметь никакого значения.
const mapStateToProps = createStructuredSelector({
isVisible: selectModalIsVisible(),
});
const mapDispatchToProps = {
hideModal,
showModal
};
export default connect(mapStateToProps, mapDispatchToProps)(Modal);
Я считаю, что это означает, что модальное состояние контейнер не найден
Возможно, я устанавливаю мой редуктор или хранить неправильно. Мой редуктор
function modalReducer(state = initialState, action) {
switch (action.type) {
case HIDE_MODAL:
return state.set(
'isVisible', false);
case SHOW_MODAL:
return state.set(
'isVisible', true);
default:
return state;
}
}
который совмещен с комбинатом восстановителей в шар
export default function createReducer(asyncReducers){
return combineReducers({
route: routeReducer,
auth: authReducer,
modal: modalReducer,
...asyncReducers
});
}
, а затем вводили в мой магазин
function configureStore(initialState = {}, history) {
const middlewares = [
sagaMiddleware,
routerMiddleware(history),
];
const enhancers = [
applyMiddleware(...middlewares),
]
const store = createStore(
createReducer(),
fromJS(initialState),
compose(...enhancers)
);
store.runSaga = sagaMiddleware.run;
//store.close =() => store.dispatch(END)
store.runSaga(sagas);
store.asyncReducers = {};
return store;
}
var initialState = {}
const store = configureStore(fromJS(initialState), browserHistory);
Ошибка в Reselect находится на линии 73/74 Params = dependencies.map
var selector = function selector(state, props) {
for (var _len4 = arguments.length, args = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
args[_key4 - 2] = arguments[_key4];
}
var params = dependencies.map(function (dependency) {
return dependency.apply(undefined, [state, props].concat(args));
});
return memoizedResultFunc.apply(undefined, _toConsumableArray(params));
};
Так что я делаю неправильно, мне нужно что-то делать с immutableJS по-другому, чтобы получить доступ к модальному, или моя настройка для приложения неверна? Заранее благодарю вас за отзывы.
Пожалуйста, добавьте код, который вызывает 'selectModal'. –
@JimBolla, это не должно иметь никакого значения, так как ошибка вызывается задолго до этой точки. Я беспокоюсь, что больше будет путать больше, чем что-либо, но я добавил. – mibbit
Большинство селекторов имеют форму 'selector = state => doSomething (state)', а ваш 'selector =() => (state) => doSomething (state)'. Я что-то упускаю? –