Когда я использую React-Router, я refre sh и теряю свое состояние? - PullRequest
0 голосов
/ 04 февраля 2020

Я передаю ранее извлеченные данные через location.state последующим компонентам. Это работает нормально, однако, если пользователь нажимает refre sh моя история, и объекты состояния местоположения стираются. Я вижу, что это предполагаемая функциональность. У меня вопрос, я должен использовать избыточность, чтобы сохранить эти данные? Если это так, я теряю много преимуществ реакции-маршрутизатора, на мой взгляд. Как люди обрабатывают состояние при использовании реактивного маршрутизатора?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2020

Вы можете передать состояния как реквизит или сохранить его в localStorage для более широкого доступа.

0 голосов
/ 04 февраля 2020

Чтобы иметь возможность сохранить данные, вы должны хранить свои данные в качестве примера в базе данных или локальном хранилище. А когда вы обновите sh страницу, вы можете получить свои данные из хранилища.

Если ваш компонент является компонентом базы классов, вы можете использовать componentDidMount для извлечения данных и установки состояния или редукции.

Если ваш компонент является функциональным компонентом, вы можете использовать useEffect для того же сценария (версия реакции должна быть больше 16,8)

https://reactjs.org/docs/react-component.html#componentdidmount

https://reactjs.org/docs/hooks-effect.html

0 голосов
/ 04 февраля 2020

React-router не занимается управлением состоянием. Для управления состоянием используйте Redux или другие решения, такие как Xstate. Чтобы сохранить данные на клиенте, вы можете посмотреть на localStorage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...