Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Reactjs 多个路由器-相同路径_Reactjs_React Router - Fatal编程技术网

Reactjs 多个路由器-相同路径

Reactjs 多个路由器-相同路径,reactjs,react-router,Reactjs,React Router,我是一个新的反应者,尝试做以下几点: 在我的系统中,用户有不同的角色(常规、经理、管理员)。 对于每个角色,我使用不同的路由器对象。 在AdminRouter和ManagerRouter中,我都希望有一个指向/dashboard的路径,但每个路径都指向不同的组件 <Router> <div> <Switch> <AdminRouter path="/dashboard" c

我是一个新的反应者,尝试做以下几点: 在我的系统中,用户有不同的角色(常规、经理、管理员)。 对于每个角色,我使用不同的路由器对象。 在AdminRouter和ManagerRouter中,我都希望有一个指向/dashboard的路径,但每个路径都指向不同的组件

     <Router>
        <div>
            <Switch>
                <AdminRouter path="/dashboard" component={AdminDashboardPage}/>
                <ManagerRouter path="/dashboard" component={ManagerDashboardPage} />
                <Route component={NotFoundPage}/>
            </Switch>
        </div>
    </Router>


是否可以添加一些逻辑来决定(基于用户角色)忽略某些路由器?例如,如果用户是管理员,路由器将跳过所有AdminRouter元素

您的路由器不能为两个不同的组件提供相同的路由,它将始终渲染第一个组件

您可以做的是制作一个包装器组件,它将决定渲染什么

例如:

<Router>
  <div>
    <Switch>
     <Route exact path="/dashboard" component={DashboardWrapper}/>
     <Route component={NotFoundPage}/>
    </Switch>
  </div>
</Router>

您的路由器不能为两个不同的组件提供相同的路由,它将始终渲染第一个组件

您可以做的是制作一个包装器组件,它将决定渲染什么

例如:

<Router>
  <div>
    <Switch>
     <Route exact path="/dashboard" component={DashboardWrapper}/>
     <Route component={NotFoundPage}/>
    </Switch>
  </div>
</Router>

您查看过可选参数了吗?您查看过可选参数了吗?