reactjs - 在同一级别的路径中反应路由器 4 不明确匹配
问题描述
我可以用那些模棱两可的路径渲染正确组件的最佳方法是什么,目前无论传递什么值,它总是落在第一个匹配项中。
<Switch>
<Route exact path={"/:vehicleclass/:categoryname/"} render={({ match, history }) => <Make history={history} match={match} {...props}/>} />
<Route exact path={"/:vehicleclass/:manufacturername/"} render={({ match, history }) => <Year history={history} match={match} {...props}/>} />
<Route exact path={"/:vehicleclass/:categoryname/:manufacturername/"} render={({ match, history }) => <Year history={history} match={match} {...props}/>} />
<Route exact path={"/:vehicleclass/:manufacturername/:year/"} render={({ match, history }) => <Model history={history} match={match} {...props}/>} />
<Route exact path={"/:vehicleclass/:year/:manufacturername/:model/"} render={({ match, history }) => <Value history={history} match={match} {...props}/>} /> </Switch>
解决方案
如果我输入以下路径/sedan/foo
,路由器将只匹配第一个路径,因为它无法知道您输入的是类别名称还是制造商名称。(您没有确切的路径,sedan
因此它会认为这是一个选项,并将第一个与选项匹配)
/:vehicleclass/:categoryname/ == /:vehicleclass/:manufacturername/
因为它认为它是/option1/option2
你需要考虑它是category/:categoryname/vehicleclass/:vehicleclass
有效/category/option1/vehicleclass/option2
的
推荐阅读
- azure - Azure blob GET 请求授权标头“x-ms-date”字段问题
- python - Completely confused on using global variables using global statement
- scheduled-tasks - 如果量子时间=5,我们如何调度小云轮循调度算法
- security - 如何将本地站点添加到内容安全策略的框架祖先?
- apache-kafka - Kafka,从 consumerRecord 获取分区
- database - 有什么方法可以将训练好的数据保存在 Verilog 中?
- xcode - iPhone模拟器刷卡无法正常工作
- javascript - 为什么我的函数要重新包装输入元素?
- c# - 在 Datagridview 中选择行执行存储过程
- c# - 当每个索引只能进行一个映射时,将渗透器存储在单独的索引中?