Краткий код вроде этого.
componentDidUpdate(preProps) {
if ( preProps.somethingFeedback === 'whatINeed') {
this.props.feedbackReducer()
this.props.toggleExitAnimation()
this.timeoutHandle = setTimeout(() => {
this.props.history.push('path')
}, 1000)
}
}
Во-первых, я использую редуктор обратной связи для обновления свойств текущего компонента. В методе componentDidUpdate я ловлю этот реквизит, условно отправляя еще два редуктора. Из-за переключающейся анимации мне также нужен тайм-аут перед маршрутизацией.
Компонент обернут соединением response-redux, вложенным в функцию withRouter hoc response-router.
Я нашел исходный код, функция feedbackReducer вызовет автоматическую маршрутизацию. если я прокомментирую функцию feedbackReducer, this.props.history.push работать не будет.
РЕДАКТИРОВАТЬ
Проблема решается приведенным ниже кодом.
componentDidUpdate(preProps) {
if ( preProps.somethingFeedback === 'whatINeed') {
this.props.toggleExitAnimation()
this.timeoutHandle = setTimeout(() => {
this.props.feedbackReducer()
this.props.history.push('path')
}, 1000)
}
}
На мой взгляд, у feedbackReducer есть ключевая обратная связь для запуска маршрутизации, поэтому время ожидания должно истекать вместе с history.push.
Я добавляю console.info в функцию тайм-аута, исходный код не может регистрировать сообщение, но может быть перенаправлен. Напротив, если я прокомментирую feedbackReducer.
Что выводит console.info(this.props.history); внутри функции тайм-аута?
История показывает правильный путь, компонент маршрута все еще не изменен.
как использовать withRouter Hoc в операторе экспорта?
Хорошо, я немного запутался ... Для ясности: код работает, если вы закомментируете this.props.feedbackReducer()? Если да, то что делает this.props.feedbackReducer()? Можете выложить код функции feedbackReducer?
Спасибо, что заметили этот момент, у feedbackReducer есть ключевой отзыв о маршруте, если он комментирует, маршрутизация не может работать. Код должен тайм-аут обратной связи с помощью history.push вместе.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы проверили, доступен ли
this.props.historyвнутри функции тайм-аута?