我在redux“politicianList”中有一个州。我不想用新状态替换旧状态。相反,我想将旧状态与新状态合并。我是这样做的。我工作但我想知道这是否是一种正确的反应方式呢?
export default function ImageReducer(state = INITIAL_STATE, action){
switch(action.type){
case FETCH_POLITICIAN_LIST_SUCCESS:
return {...state, politicianList : state.politicianList.concat(action.payload)};
break;
答案 0 :(得分:0)
redux需要不变性,你做得恰到好处,所以回答你的问题;这是正确的做法(出于许多其他正确的方式)
{...state}
创建一个与state
具有相同属性的新对象,而不会突变state
。然后,您将覆盖此新对象中的属性politicianList
。
您提供的值politicianList
是与有效负载连接的先前值politicianList
。 Array.protoype.concat
是不可变的并返回一个新数组。
总而言之,您创建了一个具有更新值的新对象,而不会改变旧对象。
我可以推荐immutable.js,以便更轻松地使用不可变数据。