reactjs - 如何在返回的对象中直接从动作中提取有效负载
问题描述
我正在使用Redux
. 在下面的减速器中,如果我使用,我会收到错误:
return({...state, action.payload});
反而:
const add= (stateaction) => {
switch (action.type) {
case "ADD":
const {payload} = action;/// <=
return({...state, payload}); // <= instead of thes two lines
default:
return state;
}
};
我记得我们可以通过添加括号来做到这一点,例如:
return({...state, [action.payload]});
但无法正确处理。
解决方案
如果您需要您所在州的有效负载内容,您也可以传播它:
const add = (state, action) => {
switch (action.type) {
case "ADD":
return {...state, ...action.payload };
default:
return state;
}
};
如果 state 是一个数组,你可以使用array spread向它添加项:
const add = (state, action) => {
switch (action.type) {
case "ADD":
return [...state, action.payload];
default:
return state;
}
};
推荐阅读
- docker - 为什么使用远程`--context`时docker-compose仍然使用旧图像
- vue.js - Vue:如何在 Chrome 中更改标签页标题
- snowflake-cloud-data-platform - Snowflake 中的 Varbinary 字节
- sql-server - Dapper Extension LIKE 运算符在匹配字符串时以相反的顺序返回结果
- python - 使用 Numpy 按箱累积张量
- spring-boot - Spring Cloud Config 客户端 - 如何调试?
- java - 如何忽略父类中的嵌套字段?
- java - 如何删除数组中的项目并保持顺序不变?
- http - 内容安全策略标头和标头大小
- r - 如何在 R 中更改 ggplotly 中的图例位置