Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React路由器v5-嵌套路由中全局不匹配_Javascript_Reactjs_Typescript_React Router - Fatal编程技术网

Javascript React路由器v5-嵌套路由中全局不匹配

Javascript React路由器v5-嵌套路由中全局不匹配,javascript,reactjs,typescript,react-router,Javascript,Reactjs,Typescript,React Router,我的React应用程序中有两个路由“堆栈”: 公共(登录、注册、404等-/Login、/Register) 专用(仪表板-/app/*) 当用户登录时,将使用仪表板路由堆栈,其中下一个嵌套路由器将匹配子页面。 当路由不存在时,我想显示来自“公共”堆栈的全局不匹配(404)路由,但当我在路由器末尾有此路由时,将显示空的仪表板路由,而不是设置中的最后一个: App.tsx 返回( (是否已验证?:)}/> ); Dashboard.tsx 导出默认功能仪表板(props:RouteCompo

我的React应用程序中有两个路由“堆栈”:

  • 公共(登录、注册、404等-/Login、/Register)
  • 专用(仪表板-/app/*)
当用户登录时,将使用仪表板路由堆栈,其中下一个嵌套路由器将匹配子页面。 当路由不存在时,我想显示来自“公共”堆栈的全局不匹配(404)路由,但当我在路由器末尾有此路由时,将显示空的仪表板路由,而不是设置中的最后一个:

App.tsx

返回(
(是否已验证?:)}/>
);
Dashboard.tsx

导出默认功能仪表板(props:RouteComponentProps):ReactElement{
返回(
仪表板
);
}
例如,当我访问
/foobar
时,我看到组件
仪表板的内容,而没有任何其他内容

我试图在仪表板的末尾进行重定向,但这在设计上似乎并不合适:


//仪表板开关末端
} />
//更改未找到的路由

根据文档():

呈现时,它会搜索其子元素以查找路径与当前URL匹配的元素。当它找到一个时,它会渲染它并忽略所有其他的

使用重定向块有助于解决这种情况下的问题。将其添加到仪表板组件:

export default function Dashboard(props: RouteComponentProps): ReactElement {
  return (
    <div>
      <div>Dashboard</div>
      <Switch>
        <Route path="/" component={Welcome} exact />
        <Route path="/create" component={CreateContent} />
        <Route path="/manage" component={ManageContent} />
        <Route><Redirect to="/404" /></Route>
      </Switch>
    </div>
  );
}
导出默认功能仪表板(props:RouteComponentProps):ReactElement{
返回(
仪表板
);
}

根据文档():

呈现时,它会搜索其子元素以查找路径与当前URL匹配的元素。当它找到一个时,它会渲染它并忽略所有其他的

使用重定向块有助于解决这种情况下的问题。将其添加到仪表板组件:

export default function Dashboard(props: RouteComponentProps): ReactElement {
  return (
    <div>
      <div>Dashboard</div>
      <Switch>
        <Route path="/" component={Welcome} exact />
        <Route path="/create" component={CreateContent} />
        <Route path="/manage" component={ManageContent} />
        <Route><Redirect to="/404" /></Route>
      </Switch>
    </div>
  );
}
导出默认功能仪表板(props:RouteComponentProps):ReactElement{
返回(
仪表板
);
}

我这样做了。这是唯一的办法吗德西姆斯,这是唯一的办法。如果一个控制流经过某个路由,它将永远不会选择另一个没有重定向的路由。一个证明链接:我做到了。这是唯一的办法吗德西姆斯,这是唯一的办法。如果一个控制流经过某个路由,它将永远不会选择另一个没有重定向的路由。证明链接: