jquery react-router-dom的链接在创建的数据表内不起作用Cell挂接

0lvr5msh  于 2022-12-22  发布在  jQuery
关注(0)|答案(1)|浏览(95)

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-domLink(使用版本“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上使用单击事件不会满足我的要求,因为我需要用户可以右键+单击并在新选项卡中打开页面的功能。

omvjsjqw

omvjsjqw1#

您可以写入onClick而不是<a><Link>,然后通过该函数将页面移动到您的URL

<button onClick={YourFunctionName} />

相关问题