【发布时间】:2020-07-20 16:03:56
【问题描述】:
我有这张桌子:
<Table hover bordered striped responsive size="sm">
<thead>
<tr>
<th>Nom du fichier</th>
<th>Date et heure d'ajout</th>
</tr>
</thead>
<tbody>
{this.state.fichierJointsInformation.map(
(operationSavInformation, i) => {
return (
<tr key={i}>
<td>
<Link
to={""}
onClick={this.onFichierJointLinkClicked}
>
{operationSavInformation.nomFichierOriginal}
</Link>
</td>
<td>{operationSavInformation.createdAt}</td>
</tr>
);
}
)}
</tbody>
</Table>
我要实现的内容:当用户点击第一列的任何元素时,相关文件会被下载。
所以onFichierJointLinkClicked onClick 监听器将处理 API 请求和其他所有事情。
<Link
to={""}
onClick={this.onFichierJointLinkClicked}
>
{operationSavInformation.nomFichierOriginal}
</Link>
我的问题: LINK 中的 to 属性是必需的。但是,我不想将用户路由到任何其他页面。我只想触发onFichierJointLinkClicked。
如果我删除 to 属性,我显然会收到此错误:
index.js:1 Warning: Failed prop type: The prop `to` is marked as required in `Link`, but its value is `undefined`.
【问题讨论】:
-
为什么不能使用普通的
<button>并将其样式设置为看起来像一个链接? -
@apokryfos 没有想到那个按钮,因为它是一个按钮而不是一个链接。
-
另外,我的应用程序中的链接有一个特殊的外观,我需要它们看起来都一样,即使这个链接不会重定向到另一个页面
-
这里的问题是
<Link>组件不是任何旧链接,而是具有特定目的的反应路由器链接。您所描述的可以是具有下载属性的锚链接(例如<a href=X download>...</a>),也可以是通过单击按钮触发的回调。唯一的问题是视觉问题,因此您需要找到一种方法将相同的样式应用于<Link>以及您的下载链接/按钮。 -
好的,感谢您的详细回复
标签: javascript html reactjs react-router-dom