Как правило, вы должны следить за глубоко вложенными объектами в состоянии React. Чтобы избежать неожиданного поведения, состояние должно быть постоянно обновлено. Когда у вас есть глубокие объекты, вы в конечном итоге клонируете их для неизменности, что может быть довольно дорогостоящим в React. Почему?
После глубокого клонирования состояния React пересчитает и повторно отрендерирует все, что зависит от переменных, даже если они не изменились!
Итак, прежде чем пытаться решить вашу проблему, подумайте, как вы можете сначала сгладить состояние. Как только вы это сделаете, вы найдете прекрасные инструменты, которые помогут справиться с большими состояниями, такие как useReducer ().
Если вы подумали об этом, но все еще уверены, что вам нужно использовать глубоко вложенное дерево состояний, вы все равно можете использовать useState () с такими библиотеками, как immutable.js и Immutability-helper . Они упрощают обновление или клонирование глубоких объектов, не беспокоясь об изменчивости.