在減速器的Redux basics tutorial部分,我無法完全理解下面的語法是如何推導應用狀態的哪個子集傳遞給每個引用的reducer調用combineReducers。它是否與Reducer名稱上的狀態成員名稱完全匹配?Redux - 組合減速器如何知道應用狀態的哪個子組通過減速器
import { combineReducers } from 'redux'
import { ADD_TODO, COMPLETE_TODO, SET_VISIBILITY_FILTER, VisibilityFilters } from './actions'
const { SHOW_ALL } = VisibilityFilters
function visibilityFilter(state = SHOW_ALL, action) {
switch (action.type) {
case SET_VISIBILITY_FILTER:
return action.filter
default:
return state
}
}
function todos(state = [], action) {
switch (action.type) {
case ADD_TODO:
return [
...state,
{
text: action.text,
completed: false
}
]
case COMPLETE_TODO:
return state.map((todo, index) => {
if (index === action.index) {
return Object.assign({}, todo, {
completed: true
})
}
return todo
})
default:
return state
}
}
const todoApp = combineReducers({
visibilityFilter,
todos
})
export default todoApp
該代碼沒有。你必須在組件本身內部指定。 – Derek
正確。我想如果它不使用新的ES6語法,它會更明顯。 聯合收割機({todos:myTodoReducer }) – ken4z