我有一个导航栏,我希望它的一个元素在点击它的时候下载一个在我的存储库的公共目录中的文件。我正在使用'react-router-dom'
中的HashRouter
。
通常我们会使用'react-router-dom'
中的Link
:
<Link
key={section.name}
to={section.link}
download={section.link === '/myfile.txt' ? 'myfile.txt' : undefined}
>
{section.name}
</Link>
但下载不起作用(文件未找到),因为知道该文件在公用文件夹中。
作为此问题的临时解决方案,我使用了<a>
标记,但必须手动为其他导航栏元素添加#
以进行导航:
<a
key={section.name}
href={section.link === '/myfile.txt' ? section.link : `#${section.link}`}
download={section.link === '/myfile.txt' ? 'myfile.txt' : undefined}
>
{section.name}
</a>
我的问题是,如何使用Link
标记来实现这一点?
1条答案
按热度按时间mefy6pfw1#
我建议创建一个自定义链接组件,根据
download
属性的存在情况,有条件地呈现Link
组件或a
元素。示例: