Обновление сложного массива объектов в react

#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 понял, что вы пытались сказать, и это действительно решило мой запрос.