操作无法更新视图

时间:2016-05-26 02:02:28

标签: javascript reactjs react-redux

当我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号可以做到,为什么?

1 个答案:

答案 0 :(得分:0)

使用combineReducer时,状态树将嵌套。例如,你的状态树在NO.2中是{ value: '' },但在NO.1中,它是{ change: { value: '' } }

因此,您应该将mapStateToPropsstate => ({ value: state.value })更改为state => ({ value: state.change.value })

很容易理解:当你组合多个减速器时,需要一个键来标记每个减速器。

http://7xinjg.com1.z0.glb.clouddn.com/combined-redux.png