Reactjs URL路由位置影响路由状态
路由时通常如何处理«URL basepath»(或位置) 小型示例:Reactjs URL路由位置影响路由状态,reactjs,react-router,Reactjs,React Router,路由时通常如何处理«URL basepath»(或位置) 小型示例: 'localhost/allworkouts' + pushState('target') => 'localhost/target' ## OK 'localhost/me/workouts' + pushState('target') => 'localhost/me/target' ## NOT OK 详细的例子,更接近我想要达到的目标 <Route path="/" component={App
'localhost/allworkouts' + pushState('target') => 'localhost/target' ## OK
'localhost/me/workouts' + pushState('target') => 'localhost/me/target' ## NOT OK
详细的例子,更接近我想要达到的目标
<Route path="/" component={App}>
<Route path="/allworkouts" component={AllWorkoutsList}/>
<Route onEnter={requireLogin}>
<Route path="/me/profile" component={Profile}/>
</Route>
</Route>
class Profile extends React.Component {
render() {
return (
// a list of the user's workouts
<Link to='workout/:workoutId1'> </Link> // or pushState
<Link to='workout/:workoutId2'> </Link>
<Link to='workout/:workoutId3'> </Link>
// these will go to localhost:3000/me/workout/xxx-yyyy
);
}
}
class AllWorkoutsList extends React.Component {
render() {
return (
// a List of all available workouts in the universe
<Link to='workout/:workoutId5'> </Link> // or pushState
<Link to='workout/:workoutId6'> </Link>
<Link to='workout/:workoutId7'> </Link>
// this will go to localhost:3000/workout/1354-878656
);
}
}
类概要文件扩展了React.Component{
render(){
返回(
//用户的训练列表
//或国家
//这些将转到localhost:3000/me/workout/xxx-yyy
);
}
}
类AllWorkoutsList扩展React.Component{
render(){
返回(
//世界上所有可用训练的列表
//或国家
//这将转到本地主机:3000/训练/1354-878656
);
}
}
我正在使用一个“间接”(indirection)(me/
)来帮助理解这样一个事实,即该路由下的数据必须经过授权,等等。但是me/
下的组件将路由到localhost:3000/me/workout/xxx yyyy
,这是一种不希望出现的行为。当我使用Link
或pushState
时,我希望对URL基本路径有更多的控制
我错过什么了吗
谢谢您尝试过使用像“/workout/xxx”这样的绝对路径吗?很有效。真不敢相信我没想到。谢谢