Я строю функциональность заказа моих модулей в состоянии компонента при реагировании, поэтому объект состояния выглядит так
"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 } });
}
Я пробовал это, но он обновляет поле заказа и объект, но также удаляет все остальныеобъекты из массива модулей: <</p>
Мне нравится просто заменять только поле порядка в каждом модуле идентификатором модуля и оставлять там остальные данные
требуемый ответ из состояния, которое мне нужно, когда 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,
}
]
}
Я могу сделать это на простом массиве, вопрос в том, как обновить состояние при реагировании
Кроме того, один способ изменить порядок - это хороший ответ, но как изменить полеу которого был зарегистрирован этот заказ. Поэтому, когда мы выполняем заказ «Изменить элемент 1» на 2, элемент 2 должен принять заказ 1
Спасибо