我想在我的redux reducer中的ES6中创建一个新的对象字面量,只有在该操作包含特定属性时才会覆盖某个键。有条件地用redux reducer替换状态值
return { ...state, items: newItems, lastRefresh: action.meta && action.meta.timestamp }
此代码将设置lastRefresh
到undefined
如果action.meta
或action.meta.timestamp
没有定义。
我知道长的形式是这样的:
let result = {
...state,
items: newItems
}
if (action.meta && action.meta.timestamp) {
result.lastRefresh = action.meta.timestamp
}
return result
但它似乎是冗长。也许这样可能与Object.assign
可能?
我想说的例子看起来完全正常。它工作,并且它是可读的。此外,优化可读性一般会减少击键的优化次数:) – markerikson