У меня есть код, который будет работать на componentWillUnmount(), но я хочу, чтобы он работал только в том случае, если они вернутся на предыдущую страницу. Если они перейдут на следующую страницу, я не хочу, чтобы то, что находится внутри componentWillUnmount, запускалось.
Я использую React Router 4, но когда я проверяю его в componentWillUnmount, он все еще не обновляется до следующего URL-адреса.
componentWillUnmount() {
const props = this.props;
const location = props.location;
}
тот же вопрос, что и у @TomFinney для следующей страницы, когда вы говорите: «Если они перейдут на следующую страницу». Это через кнопку следующей страницы на панели навигации браузера или через элемент HTML?
@TomFinney - у меня есть оба. Продвижение вперед — это просто кнопка на сайте.





React Router предоставляет объект история, который вы можете использовать для установки некоторых переменных перед переходом на новое место.
Попробуйте что-то вроде этого:
componentDidMount() {
this.props.history.block((location, action) => {
this.isGoingBack = action === 'POP';
})
}
componentWillUnmount() {
if (this.isGoingBack) {
...
}
}
Возможно, вам также придется проверить location.
ах, так что я должен сделать свою собственную проверку в основном?
когда вы говорите «назад», вы имеете в виду, нажимают ли они кнопку «Назад» в браузере или у вас есть кнопка/ссылка, явно возвращающаяся назад, например. как в меню/хлебных крошках или что-то в этом роде?