You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何在页面加载时默认显示AssignedComponent组件?

解决React路由首次加载默认显示AssignedComponent的问题

这是个很常见的路由配置需求,你的代码里目前只给/assigned路径绑定了组件,但页面首次加载时浏览器默认访问的是根路径/,所以Switch找不到匹配的路由规则,自然不会渲染任何组件。下面给你两种简单的实现方案:

方案一:添加根路径重定向

在Switch组件最前面添加一个匹配根路径的重定向规则,当用户访问根路径时自动跳转到/assigned,这样就能默认加载AssignedComponent了:

<div className="menubutton">
  <NavLink exact to="/assigned"><button>Assigned</button></NavLink>
  <NavLink to="/picked"><button>Picked</button></NavLink>
  <NavLink to="/completed"><button>Completed</button></NavLink>
</div>
<Switch>
  {/* 新增根路径重定向规则 */}
  <Route exact path="/" render={() => <Redirect to="/assigned" />} />
  <Route exact path='/assigned' component={() => <AssignedComponent />} />
  <Route exact path='/picked' component={PickingComponent} />
  <Route exact path='/completed' component={CompletedComponent} />
</Switch>

方案二:让AssignedComponent同时匹配根路径和/assigned

如果你不想改变浏览器地址(保持地址栏显示/而不是跳转到/assigned),可以修改Assigned的路由规则,让它同时匹配根路径和/assigned:

<div className="menubutton">
  {/* 这里可以保留原有的"/assigned"路径,加上exact避免其他路径触发高亮 */}
  <NavLink exact to="/assigned"><button>Assigned</button></NavLink>
  <NavLink to="/picked"><button>Picked</button></NavLink>
  <NavLink to="/completed"><button>Completed</button></NavLink>
</div>
<Switch>
  {/* 修改路径为数组,同时匹配根路径和/assigned */}
  <Route exact path={["/", "/assigned"]} component={() => <AssignedComponent />} />
  <Route exact path='/picked' component={PickingComponent} />
  <Route exact path='/completed' component={CompletedComponent} />
</Switch>

两种方案都能实现你的需求,你可以根据是否需要改变地址栏显示来选择。

内容的提问来源于stack exchange,提问作者Nirmal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:53:30