Redirect 如何在不更改url的情况下在React路由器中重定向

Redirect 如何在不更改url的情况下在React路由器中重定向,redirect,react-router,Redirect,React Router,如何实现maybeGoToBar,以便根据名称显示Foo组件或Bar组件,而不更改url function maybeGoToBar(nextState, replace, callback) { const name = nextState.params.name; if (name === "Bob") { // do something to route to /bar // but keep showing /bob/foo as the current loca

如何实现
maybeGoToBar
,以便根据名称显示
Foo
组件或
Bar
组件,而不更改url

function maybeGoToBar(nextState, replace, callback) {
  const name = nextState.params.name;
  if (name === "Bob") {
    // do something to route to /bar
    // but keep showing /bob/foo as the current location
    // in the browser address bar
  }
  callback();
}

<Route path=":name/foo" onEnter={maybeGoToBar} component={Foo} >
<Route path="bar" component={Bar} >
函数maybeGoToBar(nextState、replace、callback){
const name=nextState.params.name;
如果(姓名==“鲍勃”){
//做些事情去酒吧
//但是继续显示/bob/foo作为当前位置
//在浏览器地址栏中
}
回调();
}

您需要使用内存历史记录


听起来你不应该用路由器来做这件事。你应该在你的组件中存储一个状态变量(如果需要的话,它的初始值可以从url中获取),并且你应该根据状态选择要显示的子项。我了解到这个选项的可能重复之处是,路由器没有处理初始url(用于打开页面)。