reactjs - 在反应中使用相同启动路径制作多条路线的方法是什么
问题描述
我在反应js中有以下代码
const routing = (
<Router>
<div>
<Route path="/posts" component={Posts} />
<Route path="/posts/new" component={New} />
</div>
</Router>
)
ReactDOM.render(routing, document.getElementById('root'))
当我尝试编写 localhost/posts 或 localhost/posts/new 时,相同的组件称为 . 我知道发生这种行为是因为我在两条路线中都有“帖子”。我的问题的任何解决方案,我都需要两条路线中的“帖子”
解决方案
最简单的解决方案:
把你的路线放在你的/posts/new
路线之前/posts
。React 从您的第一条路线开始进行部分匹配。所以/posts/*
将永远匹配/posts
(除非你使用exact
道具!)
更好的解决方案:
在您的路线上使用exact
道具/posts
仅接受对/posts
. exact
有关 React 中如何工作的更多详细信息,请参阅我的答案: React:<Route exact path="/" /> 和 <Route path="/" /> 之间的区别
推荐阅读
- python - FERNET 错误:cryptography.fernet.InvalidToken
- amazon-web-services - AWS Glue:架构中未找到列“column_name”
- javascript - 如何跟踪在 React 中单击了哪个列表项?
- android - 从互联网获取数据
- masstransit - MassTransit SagaStateMachine 测试不应该这么难,不是吗?
- shell - 将变量转换为大写并在 shell 脚本中动态引用
- laravel - 路由中“使用”的Laravel 8数组可调用语法不起作用
- java - 打开从 html 源下载的 mp4 时出现错误 0xc00d36c4
- python - MongoDB .find() 不返回过滤结果
- python-3.x - 在列表中搜索字符串并返回列表值