с массивом объектов, и если в я этом стейте что-то меняю, и потом обновляю этот стейт просто переносом измененного массива, то стейт вроде обновляется,а перерендера страницы нет. А вот если я его обновляю через ...spread, то стейт тоже меняется, но еще это вызывает и нужны мне перендер страницы.
Почему так?
Потому что нельзя мутировать стейт в реакте
Я стейт обозначаю через [elem, elemHandler] = useState() Т.е я стейт меняю через функцию elemHandler, которая по сути и должна его менять. И поэтому он ссылается что я не меняю стейт, а его мутирую? если без spread
Скорее всего. Так как код ты не показываешь, остаётся только догадываться
elemHandler(prev => [...prev, {new: item}])
Так оно добавляет новый объект в конец массива.
ну да) я же не знаю что ты меняешь
Обсуждают сегодня