【发布时间】:2017-02-03 13:21:04
【问题描述】:
我有一个 React / Redux 应用程序,并且正在使用 redux-logger 来显示状态更改。我有一些奇怪的行为,结果状态包含 _id 属性。例如,以下信息显示了我的记录器输出:
上一个状态:
{
title: ""
}
动作对象:
{
title: "New title"
}
下一个状态:
{
_id: ObjectID,
title: "New title"
}
下面是我的reducer函数:
function updateState(state = initialState.obj, action) {
switch (action.type) {
case 'SET_TITLE':
var newState = Object.assign({}, state, action.obj);
return newState;
default:
return state;
}
}
而initialState 是:
{
obj: {
title: ""
}
}
动作载荷是:
{
type: 'SET_TITLE',
obj: {
title: "New Title"
}
}
和dispatcher如下:
// Call to API to get data from MongoDB...
let dataObj = response.data;
let newObj = {
title: dataObj.title
};
dispatch({
type: 'SET_TITLE',
obj: newObj
});
为什么要添加 _id 属性?
【问题讨论】:
-
我认为这是无关紧要的,因为这是 redux-logger 推送到浏览器控制台的内容。
-
@JoeTidee 如果你有
var newState = Object.assign({}, state, action.obj);新状态将是浅拷贝,所以要在action.obj 中有_id,你需要有键_id。检查here -
不确定我是否理解...我不想要 _id 属性,但它在状态更改后出现。