javascript - 为什么我的 onClick 在渲染时会激活?
问题描述
当页面呈现时,以某种方式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
. 并且您的函数在渲染时触发,因为这是评估和传递的onClick
值的地方,这使您的语句执行。button
试试这个:
<button onClick={() => props.setOn("no")}>Send</button>
推荐阅读
- workflow-foundation - 如何在 Workflow Foundation 的自定义活动设计器上设置自定义图标?
- json - 从 Go 中的 json 文件中读取多个 json 对象
- java - Swing 布局未正确显示
- drupal - gatsby-source-drupal 不显示 graphql 查询
- r - ggplot2 - 如何将标签添加到堆叠百分比条形图
- typescript - 过滤树结构直到总项目达到其限制
- java - 如何将 WAV 文件 y 附加到现有的 WAV 文件 x, st x += y 中?
- hashicorp-vault - Kubernetes 到 Vault 身份验证失败
- c++ - 具有深度睡眠模式的低功耗 ESP32 + LoRa (TTGO LoRa32 OLED Board V1.0)
- asp.net-mvc - 如何从 XSD 和 WSDL 文件创建 web 服务?