Как увеличить значение объекта в состоянии ReactHtml

Программисты Html
Ответить
Anonymous
 Как увеличить значение объекта в состоянии React

Сообщение Anonymous »

У меня есть компонент под названием counters, состояние которого выглядит примерно так:

Код: Выделить всё

state = {
counters: [
{ id: 1, value: 0 },
{ id: 2, value: 3 },
{ id: 3, value: 0 },
{ id: 4, value: 0 },
],
};

И я пытаюсь увеличивать значение каждый раз при нажатии соответствующей кнопки. Это функция, которую я написал для него.

Код: Выделить всё

  handleIncrement = (counter) => {
const counters = [...this.state.counters];
const index = counters.indexOf(counter);
counters[index] = { ...counter };
counters[index].value++;
this.setState({ counters });
};
Это не работает. И вот несколько дополнительных наблюдений.
  • Когда я console.log использую объект локальных счетчиков (скопированный из state.counters), он возвращает дополнительную строку в конце с идентификатором: -1 и значением: NaN
  • Переменная counter (которая передается как параметр) взята из дочернего компонента. Предполагается, что он вернет 0, если нажата первая кнопка, 1, если нажата вторая кнопка, и так далее. Когда я console.log, кажется, возвращает правильные значения.
Судя по всему, проблема заключается в строке:

Код: Выделить всё

const index = counters.indexOf(counter);
Поскольку значение индекса всегда возвращается как -1.


Подробнее здесь: https://stackoverflow.com/questions/719 ... tate-react
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»