路由匹配与老师讲的不一致

路由匹配与老师讲的不一致

见截图,地址输入/detail,/和/detail对应的路由都能匹配上,但是输入/只会匹配到/对应的路由。

加不加exact={true}结果都一样。

代码如下:

ReactDOM.render(

<BrowserRouter>

<Layout className="layout">

<Header className="header">

<AppHeader></AppHeader>

</Header>

<Content className="content">

<Route path="/detail" exact={true} component={Detail}></Route>

<Route path="/:id?" exact={true} component={PageList}></Route>

</Content>

<Footer className="footer">@copyright mxf 2019</Footer>

</Layout>

</BrowserRouter >

, document.getElementById('root'));

http://img1.sycdn.imooc.com//climg/5d351628000150af09750894.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
_是你_ 2019-07-23 15:14:21

是精确匹配,可是不是说添加无效么。不知道是不是顺序影响了,让你试一下,不能特别确定不生效的原因。排查下。不加exact,不加switch,是/能匹配到/和/detail,加了之后,能匹配到各自对应的。

_是你_ 2019-07-22 15:25:02

肯定都能匹配到呀,/的话,匹配的应该是下面那个吧,加了问号之后就可以匹配。

至于值匹配“/”这个或许是跟循环有关系的。就是你输入/detail的时候,没有匹配"/"的内容的原因是因为这个在上面先匹配了这个,你调换顺序,在使用exact试下。

  • 提问者 fangfangfang2019 #1
    exact={true}不是精确匹配吗?为什么还跟顺序有关?你说的也跟老师讲的不一致啊,老师演示的是,如果不加exact,不加switch,/能匹配到/和/detail
    2019-07-23 10:49:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师