关于react-router-dom 6.0.1的基础写法 解决Error: A <Route> is only ever to be used as the child of <Routes>

在新建react项目中
使用react-router-dom 6.0.1版本难免会遇到以下报错

Error: A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.

首先要了解 6.0.1的写法更改了

要切换的组件

function Index() {
    return <h2>首页</h2>;
}

function List() {
    return <h2>列表</h2>;
}

以前版本
Route 需要在 Router 里,组件为 component

function Example() {
	return (
	<Router>
	    <ul>
	        <li> <Link to="/">首页</Link> </li>
	        <li><Link to="/list/">列表</Link> </li>
	    </ul>
	    <Route path="/" exact component={Index} />
	    <Route path="/list/" component={List} />
	</Router>
	)
}

现在版本
Route 需要在 Routes 里,组件为 element,注意括号内为标签

function Example() {
	return (
	<div>
		<ul>
            <li><Link to="/">首页</Link></li>
            <li><Link to="/list/">list</Link></li>
        </ul>
        <Routes>
            <Route path="/" exact element={<Index/>}/>
            <Route path="/list/" element={<List/>}/>
        </Routes>
	</div>
	)
}

官方案例地址: https://stackblitz.com/github/remix-run/react-router/tree/main/examples/basic?file=src%2FApp.tsx.
官方git仓库: https://github.com/remix-run/react-router.

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值