Я пытаюсь удалить текстовое поле в определенном месте, используя соединение. При объединении массива он получается, как и ожидалось. Но по какой-то причине текстовая область в конце - это текстовая область, которая удаляется, а не текстовая область, которую я хочу удалить.
Я уже пробовал использовать 2 разных массива, но результат тот же. Я не уверен, что еще попробовать.
class App extends Component {
state = {
pro : []
}
//onclick add a textarea
onclick = () => {
let arr = this.state.pro;
arr = this.state.pro.concat(0);
this.setState(
{
pro : arr
}
)
console.log(arr);
}
//change the text content of a textarea at an index
onchange = (i, e) => {
let arr = this.state.pro;
arr[i] = e.target.value;
this.setState(
{
pro : arr
}
)
}
remove = (i, e) => {
let arr = this.state.pro
arr.splice(i, 1)
this.setState(
{
pro: arr
})
}
render() {
console.log(this.state.pro)
return (
<div>
{this.state.pro.map((con, k) =>
<div key = {k}>
<textarea key = {k} onChange = {this.onchange.bind(this, k)}></textarea>
<button onClick = {this.remove.bind(this, k)}>-</button>
</div>
)}
<button onClick = {this.onclick}>+</button>
</div>
);
}
}
Нет сообщений об ошибках. Ожидаемым результатом будет удаление ПРАВИЛЬНОЙ текстовой области, когда я нажимаю кнопку минус рядом с ней. Не топ каждый раз.