У меня есть два элемента навигационной панели, которые имеют разные маршруты, когда я хочу переключаться с одной страницы на другую, щелкая элементы в навигационной панели, компонент не монтируется, но маршрут изменяется.
Я исследовал эту проблему и нашел решение методом componentWillReceiveProps()
.
Но я не уверен, что это решение.
Вот что я попробовал:
Когда я объявляю маршруты, я передаю пропу currentRoute
компоненты.
Позже в componentWillReceiveProps
проверяется следующий и этот реквизит currentRoute
и, если они различны, то вызывается функция с сбросом состояния.
Код :
// ROUTES
if (route === '/intakeAnalytics') {
return <Analytics userRole={userRole} currentRoute="/intakeAnalytics" />
}
if (route === '/adjusterAnalytics') {
return <Analytics userRole={userRole} currentRoute="/adjusterAnalytics" />
}
// componentWillReceiveProps
async componentWillReceiveProps(nextProps) {
if (nextProps.currentRoute !== this.props.currentRoute) {
this.setDefaultData()
}
}
Примечание: Оба эти маршрута используют один и тот же компонент «Аналитика», то есть две разные аналитики, которые используют один и тот же компонент.