Рационально ли писать неиспользующийся useSelector для ре-рендера компонента?
всем привет. дело такое: у меня есть переменная, которая лежит в отдельном файле, при нажатии на некую кнопку, я использую редюсер(redux'овскй) и меняю эту переменную, и вот, мне нужно перерендерить совсем другой компонент, в котором я получаю эту переменную, ведь там происходит обход по массиву, коим является эта самая переменная. так вот, чтобы сделать перерендер, я сделал такую конструкцию: const store = useSelector((store) => store)
, и это работает. ререндер происходит. вопрос стоит в том, стоит ли использовать такую практику? ведь этот store вообще не используется, а служит как некий слушатель любых диспатчей. а может я еще плохо знаком с редаксом, и одна из целей useSelector именно такова, в любом случае, объяснении работы этого хука приветствуется :)
WbICHA, смотри, у меня есть переменная в отдельном файле. и есть редюсер, который может изменять этот файл каким-либо образом, но сам редюсер возвращает не всю переменную, а лишь некоторую часть из нее. но в другом компоненте мне нужно сделать перерендер и получать эту самой переменную, но так так в этом компоненте не делаются никакие диспатчи, он не хочет делать ререндер. я б мог создать второй редюсер для этого, и получать оттуда эти данные, но я думаю, это не лучшее решение, поскольку по возможно лучше иметь один редюсер.
спасибо большое за комментарии, я уже все пофиксил, использую два редюсера и написав свой combineReducers, чтоб передать данные из одного редюсера в другой
как вариант можно использовать кастомные события ()
и диспачить событие и отлавливать его где это необходимо
а что мешает вынести эту переменную в store redux?
ведь этот store вообще не используется, а служит как некий слушатель любых диспатчей
если ты не используешь редукс для хранения состояния (а хранишь состояние в отдельных объектах), то он тебе не нужен вовсе. Воспользуйся mobx, сделай те объекты наблюдаемыми, а компоненты - наблюдателями, и всё будет само обновляться когда нужно.
этот store возвращает данные из редюсера, который в свою очередь получает некую часть данных из той переменной в отдельном файле, но если я в редюсере изменю этот объект, например, добавлю ключ, НО в редюсере верну не объект, а этот самый ключ, то в компоненте, где я прохожусь по этому объекту, не произойдет ререндера. а вот если я добавлю такой unused useSelector, то ререндер будет происходить при любом диспатче