Redux还是很新的东西,而且在将单个值保存到存储上也很不错,但是我对如何在对象上存储多个相关属性有些困惑。
这似乎与Object.assign(...
的使用有关,但是我不确定该怎么做。
保存其他属性的正确方法是这样的:
export default (state = {}, action) => {
switch (action.type){
case actionTypes.SAVE_ENGAGEMENT:
return {
...state,
engagement: Object.assign({}, action.engagement)
};
default:
return state;
}
};
基本上,我希望在我的商店中使用具有类似属性的对象:
{
'engagement': 5,
'opened_from_push': true,
'first_accessed_time': 1561927084
}
理想情况下,我也可以对其进行更新
答案 0 :(得分:1)
基本上,Redux要求您不要改变状态,而是返回一个新状态。 所以我认为您只需要这样做。
export default (state = {}, action) => {
switch (action.type){
case actionTypes.SAVE_ENGAGEMENT:
return {
...state,
engagement: action.payload,
};
case actionTypes.SAVE_OPENED_FROM_PUSH:
return {
...state,
opened_from_push: action.payload,
};
case actionTypes.FIRST_ACCESSED_TIME:
return {
...state,
first_accessed_time: action.payload,
};
default:
return state;
}
};
答案 1 :(得分:0)
您也可以将散布运算符用于传入的对象:
const state = {
engagement: 5,
greeting: true
};
const engagement = {
engagement: 6,
opened_from_push: true,
first_accessed_time: 1561927084
}
return { ...state, ...engagment };
请注意,互动仅次于键,因此您的state.engagement
在此示例中将最终为6。