gpt4 book ai didi

javascript - react 路由器 onChange

转载 作者:行者123 更新时间:2023-12-03 05:05:26 24 4
gpt4 key购买 nike

路线改变时如何传递新的 Prop ?我需要根据路线更改舱位。

export class Routes extends React.Component<any, any> {
constructor(props:any){
super(props);
}
handleChange = (prevState, nextState, replaceState) => {
console.log(nextState.location.pathname);
};
render(){
return(
<Router {...this.props}>
<Route path="/" onChange={this.handleChange} component={Miramir}>
<Route path="/about">
<IndexRoute component={Miramir}></IndexRoute>
</Route>
<Route path="/contact">
<IndexRoute component={Miramir}></IndexRoute>
</Route>
<Route path="/profile">
<IndexRoute component={Profile} />
<Route path="/profile/update" component={ProfileUpdate} />
<Route path="/profile/login" component={LogInPage} />
</Route>
</Route>
</Router>
)
}
}

我正在尝试在 Miramir 组件中获取 props 并检查 location.pathname

例如:在我的路线/我想要 header 类 home-page ,在/profile 路线上想要 profile-page 类。但是当我更改路线时 location.pathname/ 路线

如何查看更新的 Prop ?

我的 Miramir 组件中需要 nextState.location.pathname

最佳答案

当路由即将改变时,您可以提供onEnter钩子(Hook)。

例如

 <Route 
path="/profile/update"
component={ProfileUpdate}
onEnter={onProfileUpdate}
/>

然后您可以定义该函数onProfileUpdate

function onProfileUpdate(nextState, replace, callback) {

replace({
pathname: '/transition path name here',
state: { nextPathname: nextState.location.pathname }
});

}

关于javascript - react 路由器 onChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42020866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com