javascript - 为什么我的 onClick 在渲染时激活?

标签 javascript reactjs events

当页面呈现时,onClick 以某种方式激活。为什么? 我该如何解决?

import React from 'react';

function Input(props) {
  return (
    <div className={props.on}>
    <div className="input">
        <input placeholder="Ask for help... "/>
        <button onClick={props.setOn("no")}>Send</button>
    </div>
    </div>
  );
}

export default Input;

最佳答案

这是因为你必须传递一个函数给onClick 这里你没有传递一个函数,你传递的是 props.setOn("no") 的结果,它是 undefined。并且您的函数在呈现时被触发,因为这是评估和传递 buttononClick 值的地方,这使您的语句执行。

试试这个:

<button onClick={() => props.setOn("no")}>Send</button>

关于javascript - 为什么我的 onClick 在渲染时激活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57146878/

相关文章:

javascript - JS - 数学不正确

javascript - 在 Aurelia 中刷新详细信息页面会导致空白

javascript - 私有(private)函数调用 protected 函数?

javascript - ReactJS 提交带有默认值的表单

c# - 无法将单击事件传递/绑定(bind)到 WPF 用户控件

javascript - 如何自定义 bxlsider 的标题

javascript - 在 React 中,孙子可以访问祖 parent 的属性而无需 parent 将其传递下去吗?

javascript - 设置传递给函数参数的对象属性的默认值

c# - 你需要 "unwire"一个匿名函数/lambda

android - 如何在 Android 设备上捕获屏幕捕获事件?