Необходимо добавлять и удалять элементы по клике на кнопке: Есть одна большая кнопка, при клике на которую добавляется еще одна кнопка, при клике на новой кнопке, она должна себя удалить.
const SomeComponent = () => {
const [elements, setElements] = useState([])
const elCounts = () => {
console.log(elements)
}
const handlerNewElement = () => {
setElements([
...elements,
<Button key={elements.length} id={elements.length} counts={elCounts}/>
])
}
}
const Button = ( {id, counts}) => {
return <p key={id}>
<button onClick={counts}>Element #{id + 1}</button>
</p>
}
Сейчас я не могу понять: функция вывода количества элементов в стейт-массиве - одна, но при клике на новую кнопку в консоль мне выдает значение стейт-массива в момент создания данного элемента, т.е. допустим добавили три кнопки, при клике на самую последнюю, мне покажет что в стейте 2 элемента, при клике на первую покажет, что в стейте 0 элементов. Как так? Такое чувство как будто стейт закешировался. Тогда как получить доступ к актуальному стейт, чтобы я мог свободно удалить по индексу?
Ссылка на песочницу:
тыц