javascript - React Router - 触发文件下载
问题描述
在文件路径的情况下如何跳过反应路由?似乎反应路由器拦截了所有链接。下面的示例 - 硬编码链接/1.pdf
似乎触发了路由器。
我们如何触发文件下载?
const Main = () => {
return (
<div>
<h1>React Router Playground</h1>
<Link to="/download">Download Area</Link>
</div>
);
};
const Download = () => {
return (
<div>
<h1>Download Area</h1>
<a href="/1.pdf">Download</a>
</div>
);
};
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
return (
<Router>
<div>
<Route exact path="/" component={Main} />
<Route path="/download" component={Download} />
</div>
</Router>
);
}
}
这是一个相当简单的例子,所以硬编码链接。这些是动态的,并在实际代码中作为道具传递。
解决方案
以下代码与NoMatch
组件结合应该可以工作,如果它是有效资源,则重新加载 URL。
<Router>
<div>
<Switch>
<Route exact path="/" component={Main} />
<Route exact path="/download" component={Download} />
<Route component={NoMatch} />
<Route onEnter={() => window.location.reload()} />
</Switch>
</div>
</Router>
推荐阅读
- typescript - 打字稿:是否可以将接口“传播”或合并到命名空间中?
- java - 为什么我的springboot安全应用总是返回404 ErrorPageFilter错误
- testing - 我如何在 jmeter 中进行压力/性能测试?
- reactjs - 反应 useEffect 挂钩缺少依赖项 linter 警告
- python - 从html页面中提取span标签内容
- python - 如何在熊猫的时间序列中找到间隔时间?
- python - 如何使布尔字段在 Django 中仅包含一个 True 值
- python - 我们可以在图像处理中使用哪些技术来减少图像的熵?
- angular - 如何在角度 2+ 的外部文件中设置 api 端点 url
- php - 如何从 php 在 exec 中运行 rsync?