У меня есть простое приложение, которое позволяет кому-то добавлять числа во входные данные, и эти числа отображаются на странице (как входные данные), которые можно редактировать.
addSiblingValue(evt) {
this.setState({
currentObject: {
...this.state.currentObject,
numberOfSiblings: evt.target.value
}
});
add() {
const array = [...this.state.array, this.state.currentObject];
this.setState({
array
});
}
siblingCountChange(rowIndex, event) {
const array = [...this.state.array];
array[rowIndex].numberOfSiblings = event.target.value;
this.setState({ array });
}
Таким образом, когда я добавляю число, оно отображает новый вход со значением, установленным для числа, которое я только что добавил, но когда я собираюсь изменить это значение, оно теперь влияет на первый ввод.
В первой строке входов используется собственный объект currentObject
, который перемещается к this.state.array
, поэтому я не уверен, почему редактирование чего-либо в этом массиве повлияет на currentObject
?
Ожидаемое поведение:
- Пользователь вводит число во вход и нажимает кнопку добавления
- Этот вход отображается и может редактироваться независимо
Как мне этого добиться или что я здесь делаю не так?
CodeSandbox
Спасибо