169 похожих чатов

У меня react-router v5 при использовании хука useHistory и history.push(to)

- сбрасывается стейт MobX. как сделать так, чтобы стейт не сбрасывался?

13 ответов

5 просмотров
Promise<>-Chernyshov Автор вопроса

можно юзать локалсторадж. но тут скорее вопрос в том, что "нормально ли это" (сбрасывание стейта между роутами)

хранить данные на серваке/локал сторадж

Promise<>-Chernyshov Автор вопроса
Promise<> Chernyshov
можно юзать локалсторадж. но тут скорее вопрос в т...

вроде как да, потому что компонент связанный с классом MobX через хук - ре-рендерится. а дефолтное значение - пустой объект (перед переходом на другой роут объект - не пустой)

Promise<>-Chernyshov Автор вопроса
Promise<> Chernyshov
вроде как да, потому что компонент связанный с кла...

поэтому quick fix - choicedTest: JSON.parse(localStorage.getItem('choiced-test') || '{}'),

Promise<>-Chernyshov Автор вопроса
Ivan 🧑‍🚀
Не нормально

как быть тогда?

Promise<> Chernyshov
как быть тогда?

Искать причину, по которой стейт сбрасывается. Потом устранять её

Promise<>-Chernyshov Автор вопроса
Promise<> Chernyshov
при смене роута компонент ре-рендерится

И при нормальном положении вещей это никак не должно влиять на стор mobx. Потому что компоненты читают стор и меняют его явным образом. Где-то в коде у тебя есть кусок, который сбрасывает состояние в сторе

Promise<>-Chernyshov Автор вопроса
Ivan 🧑‍🚀
И при нормальном положении вещей это никак не долж...

я делал export class Module {} в компоненте import { Module } from '../stores/modules'; const [module] = React.useState(() => new Module())

Promise<>-Chernyshov Автор вопроса
Ivan 🧑‍🚀
И при нормальном положении вещей это никак не долж...

короче, в коде нигде я не сбрасываю этот стейт. он сбрасывается если инстанс внутри хука useState юзать.

Promise<>-Chernyshov Автор вопроса
Promise<> Chernyshov
короче, в коде нигде я не сбрасываю этот стейт. он...

issue что ли создать у них в репозитории... непонятный момент

Promise<> Chernyshov
я делал export class Module {} в компоненте impor...

Очевидно, он должен сбрасываться — ты на каждый маунт компонента создаёшь НОВЫЙ стор

Похожие вопросы

Обсуждают сегодня

И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
здравствуйте. пытаюсь проверить, содержится ли в десятичном представлении инта некоторая цифра. совершаю: strstr(x, "5") != NULL) получаю ошибку с фото (заведомо неработающий ...
Катя Шевчук🪇
17
Что там вообще с кроссплатформенностью?
🄼🄰🄺🅉🄰🄸
23
{ char buff = *start; *start = *end; *end = buff; } Из-за этой строчки? Что каждый символ через перем бафф? Как вариант использовать другие со...
Wenks
12
#include <stdio.h> #include <string.h> int main() { char *str = "Hello World"; char *ptr; int i = 0; for(char *end = str + strlen(str) - 1; end = str; ptr++, ...
Wenks
9
а я правильно понимаю что в винде сетевые диски выполнены на уровне юзерспейс драйвера? ну я про те которые webDAV, SMB и прочие высокоуровневые
Mixail Frolov
9
Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
28
Кстати, а я вот тут подумал. Допустим, у нас имеется цикл который выполняет огромное количество итераций, но мы хотим, чтобы какие-то действия исполнилось только один раз. В Я...
The Bird of Hermes
23
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Карта сайта