reactjs - 当 url 匹配相同的路由时,React 路由器不会重新加载页面
问题描述
我有以下路线。当我在/createtest
页面上并且history.push(/createtest/some-test-id)
因为它匹配相同的路由组件时,它不会重新加载。有什么聪明的解决办法吗?或者我需要检查match
参数并实现逻辑来重新加载?
(反应 16,路由器 v4)
<Route path="/createtest/:testid?/:type?/:step?/:tab?" render={(props) => <CreateTest user={user} {...props}/>}/>
解决方案
您可以为key
组件提供 URL 参数,以便在 URL 参数更改时创建一个全新的组件。
<Route
path="/createtest/:testid?/:type?/:step?/:tab?"
render={props => {
const {
match: {
params: { testid, type, step, tab }
}
} = props;
return (
<CreateTest
key={`testid=${testid}&type=${type}&step=${step}&tab=${tab}`}
user={user}
{...props}
/>
);
}}
/>;
推荐阅读
- php - 如何将以下信息写入 VConnect 中的文件?
- java - 如何在 ionic 3 应用程序启动画面上设置自定义微调器
- javascript - 如何在不使用 Javascript 的情况下在 Rails 中制作注销按钮?
- ionic-framework - ionic cordova build android - Ionic Woocommerce 应用程序未构建
- spring-boot - Kafka模板:通过kafka模板发送消息时出现超时异常
- sql-server-2016 - 从 SQL Server 2016 数据库创建 dBaseIV 文件
- minikube - 无法启动 MiniKube:卡在启动集群组件上
- ios - 如何在 RxSwift 方式中实现 shouldChangeText
- django - 如何使用python将pdf文件下载到本地机器
- javascript - 如何使用事务更改资产属性的值?