Reactjs 默认值不显示活动的React Router UrlParameter
我有一个竞赛结果应用程序,它有一个导航栏,显示一个“所有结果”Reactjs 默认值不显示活动的React Router UrlParameter,reactjs,react-router-v4,react-bootstrap,react-router-redux,Reactjs,React Router V4,React Bootstrap,React Router Redux,我有一个竞赛结果应用程序,它有一个导航栏,显示一个“所有结果”Nav.Link选项以显示所有结果,还有一个“添加结果”Nav.Link选项以允许您输入结果。问题是,如果我直接点击“添加结果”链接,它应该将其视为一个我输入比赛号码并在条目中查找的链接,但是如果我在结果页面中,并且我在那里单击了一个条目,它应该转到“添加结果”页面,其中填充了所有条目信息 我在我的路由中使用了一个Url参数,所以当你点击“所有结果”链接时,它会转到/result/0,但在“所有结果”表中,如果你点击一个条目,它会执行
Nav.Link
选项以显示所有结果,还有一个“添加结果”Nav.Link
选项以允许您输入结果。问题是,如果我直接点击“添加结果”链接,它应该将其视为一个我输入比赛号码并在条目中查找的链接,但是如果我在结果页面中,并且我在那里单击了一个条目,它应该转到“添加结果”页面,其中填充了所有条目信息
我在我的路由中使用了一个Url参数,所以当你点击“所有结果”链接时,它会转到/result/0
,但在“所有结果”表中,如果你点击一个条目,它会执行分派(推送('/result/'+id))代码>
所有这些的唯一问题是,当它跟随/result/999999
链接时,它不会使匹配的Nav.link
处于活动状态。当我点击“添加结果”链接到/result0
时,它就会出现。我假设它只是将当前url与Nav.Link
s中的url相匹配。我真的必须自己跟踪我在“所有结果”页面并在Nav.Link
上设置active
属性,还是路由器可以为我这样做
<Nav.Link as={NavLink} to='/results' exact>
All Results
</Nav.Link>
<Nav.Link as={NavLink} to='/result/0' exact>
Add Result
</Nav.Link>
...
<Switch>
<Route path='/' exact component={AllEntriesWrapper} />
<Route path='/results' exact component={AllResultsWrapper} />
<Route path='/result/:entryId' exact component={AddResult} />
</Switch>
所有结果
添加结果
...
为了实现这一点,我做了以下更改
- 将链接更改为
,删除0
参数和exact
关键字
- 添加了第四条路线,如
- 确保AddResult组件处理未定义的
ownProps.match.params.entryId
的方式与之前处理'0'
的方式相同