正如我提到的,我有MUI主题提供与布局,其中包括仪表板,订单屏幕…

当用户点击‘/’端点时,它应该返回登录屏幕,但布局不断显示.

-App.js

<ThemeProvider theme={theme}>
<Router>
  <Layout>
  <Switch>
      <Route exact path="/">
        <Login />
      </Route>
      <Route  path="/dashboard">
        <Dashboard />
      </Route>
      <Route path="/orders">
        <Orders />
      </Route>
      <Route path="/users">
        <Users />
      </Route>
      <Route path="/employees">
        <Employee />
      </Route>
    </Switch>
  </Layout>
</Router>
</ThemeProvider>

);

-Layout.js

.AppBar、边栏等

<div style={{width:'100%'}}>
        <div className={classes.toolbar}></div>
       {children}
</div>
   

推荐答案

按原样,代码无条件地呈现Switch之外的Layout分量,因此无论当前匹配的路由如何,都会呈现它.

如果希望Layout组件仅在某些路由上渲染,请使用这些路由有条件地渲染它.

例如,恰好将Login组件渲染到"/"路径上,将其他所有组件渲染到一条路由中,分别渲染Layout和另一条Switch.

<ThemeProvider theme={theme}>
  <Router>
    <Switch>
      <Route exact path="/">
        <Login />
      </Route>
      <Route path="/">
        <Layout>
          <Switch>
            <Route  path="/dashboard">
              <Dashboard />
            </Route>
            <Route path="/orders">
              <Orders />
            </Route>
            <Route path="/users">
              <Users />
            </Route>
            <Route path="/employees">
              <Employee />
            </Route>
          </Switch>
        </Layout>
      </Route>
    </Switch>
  </Router>
</ThemeProvider>

Javascript相关问答推荐

为什么这个自定义组件会被放置在TR之外?

如何从JavaScript中的公共方法调用私有方法?

如何在react-Router-dom 6中Forking 路由?

事件错误:类型错误:无法读取未定义的属性(读取stopPropagation)

如何制作删除按钮以从列表中删除该项目所属的项目?

使用Apps Script缩短谷歌表中的URL?

reaction useEffect KeyDown for each 条目配音输出

每次子路由重定向都会调用父加载器函数

D3 Scale在v6中工作,但在v7中不工作

在Vite React库中添加子模块路径

在grafana情节,避免冲突的情节和传说

当试图显示小部件时,使用者会出现JavaScript错误.

对路由DOM嵌套路由作出react

当我在Reaction中创建一个输入列表时,我的输入行为异常

钛中的onClick事件需要在两次点击之间等待几秒钟

如何防止ionic 输入中的特殊字符.?

对具有相似属性的对象数组进行分组,并使用串连的值获得结果

在JS/TS中将复杂图形转换为数组或其他数据 struct

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

如何通过Axios在GraphQL查询中发送数组