我正在遵循一个较旧的教程,但是我使用的是“ react-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>
);
答案 0 :(得分:1)
onEnter
在react-router-4
上不再存在。在v4中,您应该使用呈现的组件的生命周期方法。您可以使用onEnter
代替componentDidMount
。
所以我也建议您在组件本身而不是路由器中设置/检查隐私规则。