Reactjs URL路由位置影响路由状态

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

路由时通常如何处理«URL basepath»(或位置)

小型示例:

'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”这样的绝对路径吗?很有效。真不敢相信我没想到。谢谢