bounty将在5天后过期。回答此问题可获得+50的声誉奖励。Jayesh Naghera正在寻找来自声誉良好来源的答案。
1.我在react中使用了jQuery DataTable。(我知道,在react中使用jQuery不太好,但它已经很长时间了,而且在该插件中定制了许多功能,我们在其他插件中没有得到这些功能)
1.使用列挂钩,我们可以添加锚链接在列之一(它的工作很好,但页面刷新,由于不使用路由器React)
let columnConfig = [
...ManyOtherColumns,
{
orderable: false,
className: 'view-page-cell',
"width": "35px",
"defaultContent": "",
"createdCell": function (td, cellData, rowData, row, col) {
//Some custom logic here...
let anchor = `<a
class="view-page"
title="${title}"
href="${url}">
<img class="image" src="${viewIcon}" width="16" />
</a>`;
ReactDOM.render(anchor, td )
}
}
]
1.无法添加react-router-dom
的Link
(使用版本“5.2.0”)(代码示例如下),出现类似Uncaught Error: Invariant failed: You should not use <Link> outside a <Router>
的错误
let columnConfig = [
...ManyOtherColumns,
{
orderable: false,
className: 'view-page-cell',
"width": "35px",
"defaultContent": "",
"createdCell": function (td, cellData, rowData, row, col) {
// custom logic here..
ReactDOM.render(<Link to={url} isactive="true" className="view-page"><img src="${viewIcon}" /></Link>, td )
}
}
]
1.数据表初始化如下
wrapper.find('.data-table-grid').DataTable({
...OtherConfig,
columns: columnConfig
});
更多信息请查看我的codepen:https://codepen.io/jsnaghera/pen/vYrwgQz
**注:**在单元格和useHistory
上使用单击事件不会满足我的要求,因为我需要用户可以右键+单击并在新选项卡中打开页面的功能。
1条答案
按热度按时间omvjsjqw1#
您可以写入
onClick
而不是<a>
或<Link>
,然后通过该函数将页面移动到您的URL
。