при изменении URL-адреса с сохранением состояния маршрутизатора - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть эта проблема:

У меня есть простая техника маршрутизации, обернутая в Redux, например:

<Provider store={store}>
    <Router>
      <React.Fragment>
        <Route exact path="/" component={App} />
        <Route path="/about" component={About} />
      </React.Fragment>
    </Router>
  </Provider>

И у меня есть простой Link в моем App component подобномэто

<Link to="/about">About</Link>

при переходе на About нажатием Link все нормально и мой магазин не сбрасывается, но вот вопрос: есть ли способ сохранить состояние при входеURL в адресной строке вручную или путем обновления страницы (нажав F5)?

Спасибо, действительно!

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

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

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

Это отличное решение для случаев, когда вам нужно хранить информацию, такую ​​как «информация о профиле», к которой можно получить доступ на каждой странице в любое время.

0 голосов
/ 11 декабря 2018

Приложение Redux store потеряет состояние, как только вы обновите страницу:

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

В редуксе есть функция горячей перезагрузки, которая не потеряет данные после обновления.

Но с текущим хранилищем кода произойдет сброс, это ожидаемое поведение.

...