我有一个像这样的 reduxreducer:
const initialState = {
visitedData:{specialty:false,review:false,reviewUpgrade:false}
}
const myred= (state = initialState, action) => {
switch (action.type) {
case 'GO_FOR_IT_SON':
return Object.assign({}, state, { visitedData: action.data });
default:
return state
}
}
现在我将从我的 reactcomponent 中调用类似的东西:
store.dispatch({type: 'GO_FOR_IT_SON', data:{review:true} });
或:
store.dispatch({type: 'GO_FOR_IT_SON', data:{specialty:false} });
因此,这些语句中的每一个都应该将 visitedData 的一个属性设置为 true/false,并保持其他属性不变。 如何将 visitedData 的每个属性设置为 true/false 并保持其他属性不变?
最佳答案
const initialState = {
visitedData: {
specialty: false,
review: false,
reviewUpgrade: false
}
}
const myred = (state = initialState, action) => {
switch (action.type) {
case 'GO_FOR_IT_SON':
return {...state, visitedData: {...state.visitedData, action.data}}
default:
return state
}
}
就像你对状态 - Object.assign 所做的那样,你应该对 visitedData 对象做同样的事情,或者使用展开运算符而不是 object.assign
关于javascript - 如何更新 reducer 中对象的 1 个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42942386/