Чтобы глубже понять это, вам нужно узнать о combineReducers
Пример
rootReducer = combineReducers({potato: potatoReducer, tomato: tomatoReducer})
// This would produce the following state object
{
potato: {
// ... potatoes, and other state managed by the potatoReducer ...
},
tomato: {
// ... tomatoes, and other state managed by the tomatoReducer, maybe some nice
// sauce? ...
}
}
Вы можете управлять именами ключей состояния, используя разные ключи для редукторы в пропущенном объекте. Например, вы можете вызвать combineReducers({ todos: myTodosReducer, counter: myCounterReducer })
, чтобы форма состояния была { todos, counter }
.
. Общепринятое соглашение - именовать редукторы после срезов состояния, которыми они управляют, поэтому вы можете использовать сокращенную запись свойства ES6: combineReducers({ counter, todos })
. Это эквивалентно написанию combineReducers({ counter: counter, todos: todos })
.
Поэтому, когда вы используете ...state.list
, вы получаете его из-за combineReducers({ list: listReducer })
или simply combineReducers({ list})
Знать больше, пожалуйста, следуйте: объединить редуктора