Что я должен использовать вместо onEnter и onChange в маршрутизаторе? - PullRequest
1 голос
/ 12 июня 2019

Я слежу за уроком, который немного староват, но я использую «Reaction-router»: «^ 5.0.0». Я думаю, что теперь он не поддерживает onEnter и OnChange.Так что я должен использовать вместо этого, сохраняя ту же функциональность.

export const globalOnChange = (prevState, nextState) => {
  globalOnEnter(nextState);
};

export const globalOnEnter = (nextState) => {
  const lastRoute = nextState.routes[nextState.routes.length - 1];
  Session.set('currentPagePrivacy', lastRoute.privacy);
  console.log('lastRoute',lastRoute);
};

export const routes = (
  <Router history = {browserHistory1}>
      <Route onEnter={globalOnEnter} onChange={globalOnChange}>
        <Switch>
          <Route exact path = "/" component={Login} privacy="unauth"/>
          <Route exact path = "/signup" component={Signup} privacy="unauth"/>
          <Route exact path = "/dashboard" component={Dashboard} privacy="auth"/>
          <Route exact path = "/test" component={Test} privacy="auth" onEnter={onEntertESTPage}/>
          <Route component={NotFound}/>
        </Switch>
      </Route>
  </Router>
);

1 Ответ

1 голос
/ 17 июня 2019

onEnter больше не существует на react-router-4. В v4 вы должны использовать методы жизненного цикла компонента, представленного a. Вместо onEnter вы бы использовали componentDidMount.

https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/migrating.md#on-properties

Поэтому я бы также рекомендовал установить / проверить правила конфиденциальности в самом компоненте, а не в маршрутизаторе.

...