我有一个使用jsx和redux设置reducer的代码示例,如下所示:
case Test:
const { [action.payload.id]: _, ...filteredAlerts } = state.alerts;
return {
...state,
...{
alerts:
{
...filteredAlerts
}
}
};
default:
return state;
一切正常,但我根本不理解这一行:
const { [action.payload.id]: _, ...filteredAlerts } = state.alerts;
有人可以对此提供简单明了的解释吗? 例如_在这里是什么意思?
[action.payload.id]: _
这行是做什么的?
const { [action.payload.id]: _, ...filteredAlerts } = state.alerts;
答案 0 :(得分:2)
它所做的就是将state.alerts
中的某个项目分配给名称为_
的局部变量,然后使用...
收集其余的项目。本质上,这是将state.alerts
除 action.payload.id
中的所有属性复制到新的filteredAlerts
变量。这是一种很长的写法:
let filteredAlerts = {};
for (let key in state.alerts) {
if (key != "action.payload.id") {
filteredAlerts[key] = state.alerts[key];
}
}
除了您仍然可以使用action.payload.id
访问_
。