Проверить новый маршрут на componentWillUnmount?

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

Я использую React Router 4, но когда я проверяю его в componentWillUnmount, он все еще не обновляется до следующего URL-адреса.

  componentWillUnmount() {
    const props = this.props;
    const location = props.location;

  }

когда вы говорите «назад», вы имеете в виду, нажимают ли они кнопку «Назад» в браузере или у вас есть кнопка/ссылка, явно возвращающаяся назад, например. как в меню/хлебных крошках или что-то в этом роде?

Tom Finney 15.03.2019 17:55

тот же вопрос, что и у @TomFinney для следующей страницы, когда вы говорите: «Если они перейдут на следующую страницу». Это через кнопку следующей страницы на панели навигации браузера или через элемент HTML?

samb102 15.03.2019 17:55

@TomFinney - у меня есть оба. Продвижение вперед — это просто кнопка на сайте.

chobo2 15.03.2019 19:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
3
565
1

Ответы 1

React Router предоставляет объект история, который вы можете использовать для установки некоторых переменных перед переходом на новое место.

Попробуйте что-то вроде этого:

componentDidMount() {
    this.props.history.block((location, action) => {
        this.isGoingBack = action === 'POP';
    })
}

componentWillUnmount() {
    if (this.isGoingBack) {
        ...
    }
}

Возможно, вам также придется проверить location.

ах, так что я должен сделать свою собственную проверку в основном?

chobo2 15.03.2019 19:14

Другие вопросы по теме