更新单个属性的Redux模式是什么

时间:2019-12-20 20:00:43

标签: redux react-redux

从我所做的所有阅读中,我可以看到在reducer中更新单个属性的全部过程是创建一个操作来更新该属性。接受的模式真的对每个财产都采取了行动吗?

例如,假设我有一个dodo减速器,其默认状态为三个不同的属性。是可以预期的模式来创建3个不同的更新操作,对于每个属性都这样,

const todo = ({
    text: '',
    complete: false,
    assignedUser: null
}, action) => {
    switch(action.type) {
        case 'UPDATE_TEXT':
            return {...state, text: action.payload}
        case 'UPDATE_COMPLETE':
            return {...state, complete: action.payload}
        case 'UPDATE_ASSIGNEDUSER':
            return {...state, assignedUser: action.payload}
        default:
            return state
    }
}

如果不是对每个属性进行单独的更新操作,那么人们在做什么作为更新每个属性的模式?

1 个答案:

答案 0 :(得分:1)

这是另一种方式,也许可以为您提供帮助:

const todo = ({
    text: '',
    complete: false,
    assignedUser: null
}, action) => {
    switch(action.type) {
        case 'UPDATE':
            return {...state, ...action.payload}
        default:
            return state
    }
}

现在,您通过动作的有效负载传递的所有内容都会进入状态,例如:

const updateTodo = payload => ({type: "UPDATE", payload})
dispatch(updateTodo({
    complete: true, 
    text: "Hello world", 
    assignedUser: {}
}))