Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在react js中单击链接时调用函数_Javascript_Reactjs - Fatal编程技术网

Javascript 在react js中单击链接时调用函数

Javascript 在react js中单击链接时调用函数,javascript,reactjs,Javascript,Reactjs,我使用的是react属性而不是tag。所以我需要做的是在点击链接时调用一个函数。我需要遵循什么方法来实现这一点。我可以使用下面的函数吗 <Link to={`/testimonial/${post.id}`} className="red"> <span onClick={this.saveData(post.title)}>More</span> </Link> 更多 我必须触发该函数,该函数将数据保存到localStorage,然后将

我使用的是react属性而不是tag。所以我需要做的是在点击链接时调用一个函数。我需要遵循什么方法来实现这一点。我可以使用下面的函数吗

<Link to={`/testimonial/${post.id}`} className="red">
  <span onClick={this.saveData(post.title)}>More</span>
</Link>

更多
我必须触发该函数,该函数将数据保存到localStorage,然后将用户重定向到该组件


谢谢。

是的。您可以在
中使用事件处理程序。或者,如果您想拥有更多的控制权,甚至可以在子元素或父元素中绑定事件处理程序。两者都是连续的:

<Link to={`/component/${post.id}`}/>
  <span onClick={this.saveDataToLocalStorage}>More</span>
</Link>

通过这种方式,您将拥有更多的控制权,您可以记录、提醒等,并且当您希望重定向到页面时。

您好,我尝试了它的工作原理。但是谢谢你的回答。但请告诉我,在我的函数工作完成后,如何将用户重定向到同一url?您的代码不工作。我在给定函数中应用了警报,警报显示时没有单击链接。我是说,函数调用时没有单击链接。当我刷新存在下一页链接的页面时,会显示警报。你的意思是,我需要在span中放置“更多”链接文本?不起作用。警报再次在渲染时调用。我更新了我的答案。您可以看到我使用的。onClick的值不正确。您必须这样定义它:
onClick={()=>this.saveData(post.title)}
谢谢,它成功了。
<span onClick={this.saveDataToLocalStorage(post.id)}>More</span>
saveDataToLocalStorage(postId) {
this.props.history.push(`/component/${postId}`)