обновить массив во вложенном массиве без мутации - PullRequest
0 голосов
/ 16 октября 2018

Ниже код не выглядит хорошо для меня, так как я должен объявить временную переменную, любой более короткий код для достижения того же результата?

handleChange = (e, index1, innerIndex) => {
  const temp_values = this.state.values
    temp_values.map((value, index) => {
      if (index === innerIndex) {
        temp_values[index].args[index1] = e.target.value
      }
    })
    this.setState({
      values: temp_values
    })
}

1 Ответ

0 голосов
/ 16 октября 2018

Да, вы можете упростить это так:

handleChange = (e, index1, innerIndex) => {
  this.setState({
    values: this.state.values.map((value, index) => {
      const args = [].concat(value.args);
      if (index === innerIndex) {
        args[index1] = e.target.value;
      }

      return {
        ...value,
        args,
      };
    }),
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...