Деструктуризация обьекта в useSelector хранит все данные этого обькта? Как правильно использовать деструктуризацию с useSelector
столкнулся с такой проблемой - решил оптимизировать React приложение и выяснил, что когда я деструктурирую два значения из обьекта, const { quoteCurr, baseCurr } = useAppSelector(state => state.portfolio.selectedCoins), остальные значение обьекта при изменении в других компонентах заставляют этот компонент ре-рендериться.
Подскажите пожалуйста, что делать в такой ситуации? Не использовать деструктуризацию и создавать каждую переменную отдельно?
Вот так: const baseCurr = useAppSelector(state => state.portfolio.selectedCoins.baseCurr); const quoteCurr = useAppSelector(state => state.portfolio.selectedCoins.quoteCurr);
Вот что хранится в компоненте при деструктуризации, мне нужны только два значения обьекта, но компонент следит за именением 4
Ответы (1 шт):
При изменении состояния будут вызваны все селекторы, что ты используешь. Рендер произойдёт в том случае, если селектор возвратит значение, отличное от предыдущего. В том числе если сделать вот так:
const { count } = useSelector(state => ({ count: state.count }))
В данном случае компонент будет рендериться от любого изменения состояния, так как селектор всегда возвращает новый объект.
