javascript - React Router 链接右键单击不起作用

标签 javascript reactjs redux react-router react-redux

我遇到一个问题,即“右键单击”使用 React Router Link 标签创建的链接。 我希望能够右键单击这些链接并选择“在新选项卡中打开链接”选项。 谁能帮我解决这个问题?

这是我的代码:

redirectUrl = (e) => {
    let url = e.currentTarget.getAttribute("dataattrurl");
    browserHistory.push({
      pathname    : url,
      query       : '',
      state       : {}
    });
  }
  
  const listItems = readingHistory.map((item, index) => {
      return (
        <li key={index} role="listitem">
          <Link className="linkPointer" onClick={this.redirectUrl} dataattrurl={`/document/${item.resId}`} onContextMenu={this.contextMenu}>
            {item.title}
          </Link>
        </li>
      );
    });

最佳答案

问题是您正在使用 onClick 而不是 href (to for Link),因此浏览器不会将其注册为另一个页面的链接,而是将其注册为具有点击事件监听器的元素。

你应该做的是利用 Linkto 属性,它基本上是常规 a 的 href 标签。请在此处查看文档:https://reacttraining.com/react-router/web/api/Link

这也会产生更简洁的代码。您的所有代码都可以简化为:

const listItems = readingHistory.map((item, index) => {
    return (
        <li key={ index } role="listitem">
            <Link className="linkPointer" to={ `/document/${item.resId}` } onContextMenu={ this.contextMenu }>
                { item.title }
            </Link>
        </li>
    );
});

因此 redirectUrl 可以完全删除。

关于javascript - React Router 链接右键单击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51955063/

相关文章:

angular - 关于这个 Angular + ngRx(效果)的建议 - websocket 事件呢?

javascript - TypeScript:在没有显式返回类型的情况下,不会在 lambda 中检查多余的属性

Javascript函数和数组问题

javascript - react-native-google-places-autocomplete 给它一个值而不仅仅是默认(初始)值

javascript - antd - 具有分页控件的 ant 设计表支持小部件来选择每页的行?

javascript - ReactJs 中的动态表格组件

javascript - 将路由器参数传递给深层嵌套组件

javascript - jQuery onmouseenter 和 onmouseleave 在位置/大小更改动画时触发

javascript - OpenLayers 可移动标记

javascript - 新手问题 : How to get information if google map is loaded (initialized)