Как распознать, был ли маршрут инициирован через history.push или ручное изменение адреса (реакции-маршрутизатор) - PullRequest
0 голосов
/ 08 ноября 2018

У меня кеш браузера как центральный источник правды.

Когда я хочу изменить состояние приложения, я просто изменяю расширенный кэш и вызываю setState, чтобы вызвать render ().

Все работает нормально, если пользователь не меняет адрес вручную (обновляет окно, нажимает на закладку и т. Д.), Чтобы исправить это, я заставил метод рендеринга маршрутизатора (<Router render={render}>) сохранить параметры URL myUrl/:myVar1/:myVar2 в кеше браузера тоже

Моя проблема в том, что я не хочу, чтобы маршрутизатор переопределял содержимое кеша, если он не был вызван вручную (например, путем вставки URL). Есть ли способ распознать источник изменения URL (если это происходит из файла history.push или другого действия)?

1 Ответ

0 голосов
/ 08 ноября 2018

Я не совсем уверен, смогу ли я помочь. Но я поделюсь с вами тем, что вы ищете.

Это то, что я делаю, чтобы сохранить последний путь, чтобы у меня была кнопка возврата

import React, { PureComponent } from "react";    
import { withRouter } from "react-router-dom";

class Navigation extends PureComponent {

  jump = path => {
    this.props.history.push(this.props.history.location.pathname);
    this.props.history.replace(path);
  };


  render() {

  }

}

export default withRouter(Navigation);

Пакет with router позволяет нам внедрить объект истории окон в любой компонент

Дайте мне знать, если есть еще вопросы

Daniel

...