Bavashi, Не верьте этим тестам: сайт глючный, работает через раз и выдает разные результаты. На 1000 элементах мой код работает почти на порядок быстрее. https://jsbench.me/4ekgqo7v99/1
Для этого даже тесты не надо было проводить, просто прикинуть количество операций которые делает ваш код и мой код.
Не видно ни запроса на сервер, ни почему обновляется GroupTree, который никак не зависит от стейта показанного компонента. Код не соответствует описанию, вопрос должен быть дописан или удалён как бестолковый
Bavashi, конечно неоднозначные, ведь у вас в тестируемых данных аж 8 элементов, кто ж на 8 элементах тесты проводит, должно быть максимум два, ну три на худой конец =)
Gimir, А что у вас особенного в проекте? Это же просто компонент. Ничто не может заставить его не работать в проекте. Создайте пустой проект, проверьте в нем. Создайте в своем проекте простенький компонент с единственной кнопкой смены булевого состояния. И смотрите в какой момент перестает работать.
"Объявляю как обычно вот так:
const [isAdding, setIsAdding] = useState(false);
Пытаюсь изменить вот так:
setIsAdding(true)
Но он не меняется, вообще не реагирует."
Это называется вы говорили про isEditing?
Еще раз - два простых шага
1) Повесьте onAddBtn на кнопку, в вашем коде эта функция не висит на кнопке, как вы ее вызываете неясно
2) Выведите в начале контейнера <div>{'isAdding = ' + String(isAdding)}</div>
https://jsbench.me/4ekgqo7v99/1
Для этого даже тесты не надо было проводить, просто прикинуть количество операций которые делает ваш код и мой код.