не происходит, при изменении стейта по клику на сорт
https://codesandbox.io/s/confident-herschel-oxwty?file=/src/App.js
Потому что у тебя ключи это индексы
заменил ключи на elem.toString но все равно также https://codesandbox.io/s/confident-herschel-oxwty?file=/src/App.js:0-436
const handleSort = () => { const reverseData = data.reverse(); setData([...reverseData]); };
помогло, а почему так?)
Костыли реакта, но вообще думаю рендер не понимает что ссылка изменилась после изменения стейта, но а если ты уже возвращаешь в setData абсолютно новый массив, то понимает
Как вариант можешь вот так сделать: const handleSort = (field) => { setData([...data.reverse()]); console.log(data); };
так в логе будет старый стейт
Нет там я вижу новую
таки да, значит шото путаю
Реверс мутирующий, а реакт при сетстейте сравнивает ссылки
Обсуждают сегодня