При использовании combineReducers()
с state
, переданным в качестве ключа, ваш mapStateToProps()
должен будет выглядеть следующим образом, чтобы получить доступ к examplePropOne
и examplePropTwo
:
const mapStateToProps = state => ({
examplePropOne: state.state.examplePropOne,
examplePropTwo: state.state.examplePropTwo
});
Учитывая, что ОбъединитьReducers () :
Состояние, создаваемое пространством имен combReducers (), содержит состояния каждого
редуктор под их ключами, как это передано в сочетании с RedReducers ()
Проблема в том, что:
export const store = createStore(
combineReducers({
state: reducers
}),
);
Ключ state
, переданный combineReducers()
, создал пространство имен / свойство state
. С аргументом state
для mapStateToProps()
требует, чтобы к свойствам обращались как state.state
. Вероятно, это можно решить, дав вместо этого переданному ключу combineReducers()
более описательное имя, представляющее, что используется для управления в хранилище. Например, если это связано с аутентификацией, его можно назвать примерно таким, как auth
. Это будет выглядеть так:
export const store = createStore(
combineReducers({
auth: reducers
}),
);
// ...
const mapStateToProps = state => ({
examplePropOne: state.auth.examplePropOne,
examplePropTwo: state.auth.examplePropTwo
});
Надеюсь, это поможет!