【发布时间】:2019-09-11 11:27:47
【问题描述】:
我正在组件状态下构建我的模块的订单功能 on react 所以状态对象看起来像这样
"activity": {
"name": "rewwerwer",
"description": "werwerwerwerwer",
"modules": [
{
"name": "Text",
"order": 1,
"module_id": 1612,
},
{
"name": "Text2",
"order" 2,
"module_id": 1592,
}
]
}
handleSortUp = (moduleid ,newOrder) => {
const { modules } = this.state.activity;
const module = modules.find(element => element.module_id === moduleid);//Thios returns the correct object
this.setState({ activity: { ...this.state.activity.modules.find(element => element.module_id === moduleid), order: newOrder } });
}
我试过了,但它更新了订单字段和对象 但也会从模块数组中删除所有其他对象:
我只想用模块 ID 替换每个模块上的订单字段 并在那里留下休息数据
handleSortUp(1612,14); 时我需要的状态的所需响应;被解雇了
handleSortUp(1612,2);
{
"name": "rewwerwer",
"description": "werwerwerwerwer",
"modules": [
{
"name": "Text",
"order": 2,
"module_id": 1612,
},
{
"name": "Text2",
"order": 1,
"module_id": 1592,
}
]
}
我可以在一个简单的数组上做到这一点,问题是如何在 react 上更新状态
更改订单的一种方法也得到了很好的回答,但是如何更改已注册该订单的字段
因此,当我们将第 1 项订单更改为 2 时,第 2 项需要接受订单 1
谢谢
【问题讨论】:
标签: reactjs ecmascript-6 state