javascript - 将行为添加到 react-router Link

标签 javascript reactjs react-router

我的 React 应用程序中有一个带有 react-router 的 Canvas 外菜单,我正在使用 <Link to="/page/name">在菜单中。

问题是,当用户点击时,菜单不会像在加载页面的 HTML 应用程序中那样消失。

当状态反射(reflect)菜单可见时,菜单获得一个类 - 我想知道是否有一种简单的方法可以转换到链接从菜单中删除类而不重写整个<Link>功能。

最佳答案

您可以使用常规 <a>标签而不是附加的 onClick听众。

render() {
...
<a href="#" onClick={this.handleClick.bind(this, "your/route/here"}>Click me!</a>
...
}

handleClick(myRoute, e) {
   e.preventDefault(); //prevent default <a> navigation to href (or omit the attribute)
   //remove your class here
   this.context.router.push(myRoute);
}

您还需要获得 router上下文类型,如果您还没有:

static contextTypes = {
  router: React.PropTypes.object
}

关于javascript - 将行为添加到 react-router Link,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882540/

相关文章:

javascript - React UI 元素放置?

express - React-router Link 不使用服务器端渲染来渲染 href 属性?

express - 如何存储 JWT 并使用 React 将它们与每个请求一起发送

javascript - 使用 React,如何在更改路由时在浏览器选项卡中触发浏览器加载指示器?

javascript - Backbonejs - 在不更改 URL 的情况下触发路由事件

javascript - 循环遍历数组并将结果输出到html

javascript - HREF 中的函数无法使用 javascript

javascript - 动态填充复选框并在 React Redux 中维护复选框的状态

javascript - 从外部react调用React setState钩子(Hook)(DOM/Google Maps)

css - 如何使用 material-ui 为复杂选择器引用另一个样式类