Перед вызовом componentWillUnmount повторный рендеринг других компонентов происходит при использовании Switch-Route. - PullRequest
0 голосов
/ 03 августа 2020

Я использую Redux. У меня есть один компонент Project, а внутри него - компонент SavedVariants. Когда я перемещаюсь за пределы компонента SavedVariants - вызываются другие функции и селекторы внутри Project, повторно их визуализируют, и только после этого вызывается componentWillUnmount. Я хочу изменить этот приоритет, есть ли способ это сделать? Мне нужно обновить состояние при размонтировании компонента SavedVariants, в противном случае повторный рендеринг заставит программу взломать sh. Компонент Project имеет следующий метод render:

render() {
    if (this.props.project && this.props.project.detailsLoaded) {
      return (
        <Switch>
          <Route path={`${this.props.match.url}/project_page`} component={ProjectPageUI} />
          {this.props.user.isStaff && <Route path={`${this.props.match.url}/case_review`} component={CaseReview} />}
          <Route path={`${this.props.match.url}/analysis_group/:analysisGroupGuid`} component={ProjectPageUI} />
          <Route path={`${this.props.match.url}/saved_variants`} component={SavedVariants} />
          <Route component={() => <Error404 />} />
        </Switch>
      )
    } else if (this.props.loading) {
      return <Loader inline="centered" active />
    }
    return <Error404 />
  }

Итак, когда я выхожу, отображается ProjectPageUI - еще одна часть компонента Project. Мне нужен способ избежать такого поведения.

Обновление

  1. Я попробовал следующий метод прикрепления EventListener, но этого не произошло help: componentWillUnmount () не вызывается при обновлении текущей страницы

  2. Несколько методов, которые я пробовал здесь, также не работали: Перехватить / обработать возврат браузера кнопка в React-роутере?

...