javascript - 在渲染时调用 onClick={alert ('hi' )} 背后的原因

标签 javascript html reactjs alert

<分区>

我知道这不是让按钮在点击时显示警报的正确方法。

我想了解这背后的逻辑。 我了解点击需要获得对函数的引用才能按预期运行。

在以下示例中,引用了将在单击时调用的箭头函数:

<button onClick={() => alert('hi)}>Click me!</button>

但是在这种情况下幕后发生了什么:

<button onClick={alert('hi)}>Click me!</button>

为什么在渲染时评估 onClick 中的语句?

编辑:我正在使用 React。

最佳答案

假设您有这样一个方法:

function getString(){

   return "string";
}

然后定义一个文本框:

<input type="text" value={getString()}/>

您可能希望文本框呈现为“string”而不是“getString()”的值。这是因为花括号内的内容是在 render 方法中计算的。

{alert('hi)} 被评估时,它运行该方法,因此分配给 onclick 事件的是 alert('hi') 返回的内容(无)不是方法本身。

关于javascript - 在渲染时调用 onClick={alert ('hi' )} 背后的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48399097/

相关文章:

html - 网页文本框中的语音转文本按钮

javascript - input 标签的 value 属性是 DOM 的一部分吗?

用于计算单词数的 javascript 正则表达式

javascript - 我可以防止 TinyMCE setContent 窃取焦点吗?

javascript - 单击 HTML5 视频控件上的播放并不能消除我的播放按钮覆盖

javascript - 谷歌闭包编译器和 jquery

html - CSS 定位图像以随窗口调整大小

javascript - 从 HTML 表格单元格中获取值

javascript - React 内联样式与客户端 CSS 冲突

reactjs - React 16.2 <Fragment> 给出未捕获错误 : Element type is invalid