如何在React Link组件上使用onClick事件?

reactjs React.js

凯小哥

2020-03-19

我正在使用reactjs路由器中的Link组件,但无法使onClickevent运行。这是代码:

<Link to={this.props.myroute} onClick='hello()'>Here</Link>

这是做这件事的方式还是另一种方式?

第2391篇《如何在React Link组件上使用onClick事件?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
阳光伽罗 2020.03.19

我不认为这通常是一个好的模式。链接将运行您的onClick事件,然后导航到该路线,因此导航到新路线会稍有延迟。更好的策略是使用“ to”道具导航到新路线,并且在新组件的componentDidMount()函数中可以触发hello函数或任何其他函数。它会为您提供相同的结果,但路线之间的过渡会更加顺畅。

对于上下文,我在使用链接上的onClick事件更新redux存储时注意到了这一点,这在安装新路由的组件之前导致〜.3秒的黑屏延迟。没有涉及到api调用,所以我惊讶于延迟如此之大。但是,如果您只是控制台记录“ hello”,则延迟可能不会很明显。

神奇老丝 2020.03.19

hello()以字符串形式传递,也hello()意味着hello立即执行

尝试

onClick={hello}

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android