当前位置: 首页 > 面试题库 >

反应onClick和preventDefault()链接刷新/重定向?

施自珍
2023-03-14
问题内容

我正在渲染一个带有react的链接:

render: ->
  `<a className="upvotes" onClick={this.upvote}>upvote</a>`

然后,上面有upvote函数

upvote: ->
  // do stuff (ajax)

在链接建立之前,我已经跨过那个地方,但是我需要切换到链接,这就是麻烦了-每次我.upvotes刷新页面时,到目前为止,我已经尝试过以下操作:

event.preventDefault()-不起作用。

upvote: (e) ->
  e.preventDefault()
  // do stuff (ajax)

event.stopPropagation()-不起作用。

upvote: (e) ->
  e.stopPropagation()
  // do stuff (ajax)

返回false-不起作用。

upvote: (e) ->
  // do stuff (ajax)
  return false

我还在index.html中使用jQuery尝试了上述所有方法,但似乎没有任何效果。我在这里应该做什么,我做错了什么?我已经检查了event.type,click因此我想应该可以避免以某种方式重定向?

对不起,我是React的新秀。

谢谢!


问题答案:

React事件实际上是合成事件,而不是本机事件。就像这里写的:

事件委托:React实际上并未将事件处理程序附加到节点本身。当React启动时,它开始使用单个事件监听器在顶层监听所有事件。在安装或卸载组件时,只需简单地在内部映射中添加或删除事件处理程序即可。当事件发生时,React知道如何使用此映射进行调度。当映射中没有事件处理程序时,React的事件处理程序就是简单的无操作。

尝试使用Use Event.stopImmediatePropagation

upvote: (e) ->
  e.stopPropagation();
  e.nativeEvent.stopImmediatePropagation();


 类似资料:
  • 【参数】 子链刷新的参数在subchainbase.sol中定义。参数列表如下: 1.刷新周期Round数值:定义子链经过多少区块后刷新。假如子链有100个节点,每个节点依次产生block,定义Round数为5,则每过500block 刷新一次。 2.当前刷新id 索引:指定下次刷新的id 在Nodelist中 的索引值 3.刷新过期数值expiration:指定的id在block [0, 2*e

  • 似乎有一些关于使用什么的混淆:

  • 问题内容: 我想念一些东西。这是一个非常简单的问候世界,目标是仅触发警报事件onClick。该事件在页面加载时触发,但在单击按钮时不触发。感谢您的帮助。这是一个jsFiddle,使它更易于查看:jsFiddle 问题答案: 我认为您会犯错,因为ReactJS只是JavaScript,我认为触发此事件的方式不起作用。您的onClick应该触发一个附加到React元素的函数,就像这样。

  • 在反应原生0.61之前的版本中,我们有两个选项来反映代码更改。 Live Reload(当检测到一些更改时重新加载应用程序) 热重装(反映没有重装的变化) 但是在版本0.61中,删除了这两个功能(实时重新加载,热重新加载),引入了一个名为“快速刷新”的开发人员新功能,它的工作原理与热重新加载类似,因此现在的问题是快速刷新和热重新加载之间的根本区别是什么。

  • 我现在正在学习React,但在重新渲染组件时遇到了问题。应用程序。js代码: 问题是不是最新的。它总是弱智,这是以前的状态。我试图调用一个在和的回调中,但是它仍然不起作用,我不知道为什么。

  • 当我重定向到第一个方法时,我希望它将添加到我的模型中: 但它没有添加到我的页面