当我react
时,有一个问题,
1
import {combineReducers} from 'redux';
let change = (state, action) => {
switch(action.type) {
case 'change':
return {
value: action.value
}
break;
default:
return {
value: 'default'
};
}
}
let combineReducer = combineReducers({
change
})
export default combineReducer;
2
export default (state, action)=>{
switch (action.type) {
case 'change':
return {
value: action.value
}
break;
default:
return {
value: 'default'
};
}
}
有什么区别?
当我使用No.1时,视图 无法更新。但是2号可以做到,为什么?
答案 0 :(得分:0)
使用combineReducer
时,状态树将嵌套。例如,你的状态树在NO.2中是{ value: '' }
,但在NO.1中,它是{ change: { value: '' } }
。
因此,您应该将mapStateToProps
从state => ({ value: state.value })
更改为state => ({ value: state.change.value })
。
很容易理解:当你组合多个减速器时,需要一个键来标记每个减速器。