Вставка значений в массив, который находится в состоянии - react

У меня есть массив внутри состояния, который является ассоциативным массивом. Я хочу вставить значения в этот массив при возникновении события.

Государственную декларацию я использовал.

state = {
    array: [{
        aaa: '',
        bbb: ''
    }]
};

Функция, которая должна вставлять значения в массив внутри состояния.

reader.onload = (e) => {

    var newArray = {
        aaa: new_aaa,
        bbb: new_bbb
    }
    this.setState({
        array: this.state.array.concat(newArray)
    });

}

Почему-то не работает ^ _ ^

Вы пробовали дать ответы? Если да, то проголосуйте и примите ответ. Спасибо

Hemadri Dasari 27.10.2018 07:51
1
1
145
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Попробуйте с кодом ниже. Лучший способ передать значения или объект в массив в React - это использовать предыдущее состояние, как показано ниже.

  reader.onload = (e) => {
       const obj = {
           aaa: new_aaa,
           bbb: new_bbb
        }
       this.setState( prevState => ({
              array: [...prevState.array, obj]
        }));
   }

Или

   reader.onload = (e) => {
       const obj = {
           aaa: new_aaa,
           bbb: new_bbb
        }
       const array = [...this.state.array];
       array.push(obj);
       this.setState({
              array
        });
   }
Ответ принят как подходящий

Вы можете использовать Destructuring_assignment, когда устанавливаете свое состояние.

state = {
  array: [{
    aaa: '',
    bbb: ''
  }]
};

reader.onload = (e) => {
  var newArray = {
    aaa: new_aaa,
    bbb: new_bbb
  }
  this.setState({
    array: [...this.state.array,newArray]
  });
}

Другие вопросы по теме