#reactjs #state
#reactjs #состояние
Вопрос:
Я изучаю React и пытаюсь обновить вложенный массив объектов, но не знаю, как мне этого добиться. Я пробовал различные решения из stackoverflow, однако ни одно из них не смогло решить эту проблему. Пожалуйста, дайте мне решение, которое не требует использования перехватов.
this.state ={
index:0,
array : [
{
"attribute": "value",
"array1":
[
{ "index": "0", "attribute1": "value1","attribute2": "value2","attribute3": "value3" },
{ "index": "1","attribute1": "value1","attribute2": "value2","attribute3": "value3" },
]
},
{
"attribute": "value",
"array2":
[
{ "index": "0", "attribute1": "value1","attribute2": "value2","attribute3": "value3" },
{ "index": "1","attribute1": "value1","attribute2": "value2","attribute3": "value3" },
]
},
]
}
handleChange = (event,position)=>{
/*ideally this function should change the value of attribute1/2/3 in either of the array1 or array2.
Now to determine which array object is supposed to be change I'm storing a variable in state which is index and also passing the position value.*/
}
Чего я пытаюсь достичь в приведенной выше функции, так это того, что если this.state.index = 0 и position = 1, то выберите 1-й объект, который
{
"attribute": "value",
"array1":
[
{ "index": "0", "attribute1": "value1","attribute2": "value2","attribute3": "value3" },
{ "index": "1","attribute1": "value1","attribute2": "value2","attribute3": "value3" },
]
}
и из значения позиции измените значение
{ "index": "1","attribute1": "value1","attribute2": "value2","attribute3": "value3" }
Кроме того, из event.target.value измените значение любого из значений attribute1 / 2 / 3.
Заранее спасибо!
Комментарии:
1. просто переназначите свойство объекта в массиве, оно установит состояние. Посмотрите документы React о настройке состояния и обработке объектов в javascript
2. Привет, Кенн, не мог бы ты предоставить мне ссылку.
3. Спасибо @Kenn понял, что вы пытались сказать, и это действительно решило мой запрос.