javascript - React 按钮组件 onClick() 在页面加载时触发,而不是 onclick

标签 javascript reactjs

我的 onClick 不是在点击时触发,而是在页面加载时触发。相关代码如下:

应用程序.js

callAPI(x) {
    fetch("http://localhost:8080/" + x)
      .then(res => res.text())
      .then(res => this.setState({ apiResponse: res }))
      .catch(err => err);
  }

render() {
    <Button
       onClick={this.callAPI('api')}
       type="success"
       className="input-lg">
       Search
    </Button>

按钮组件:

import React from "react";

function Button({ type = "default", className, children, onClick }) {
  return (
    <button onClick={onClick} className={["btn btn-lg", `btn-${type}`, 
    className].join(" ")}>
      {children}
    </button>
  );
}

export default Button;

非常感谢任何帮助!

最佳答案

改变

<Button onClick={this.callAPI('api')} type="success" className="input-lg">
  Search
</Button>

<Button onClick={() => this.callAPI('api')} type="success" className="input-lg">
  Search
</Button>

您将在设置 Prop 后立即调用该函数,而不是在单击该 Prop 时调用该函数。要让该函数在单击时触发,您需要传入一个尚未调用的函数。

关于javascript - React 按钮组件 onClick() 在页面加载时触发,而不是 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55460545/

相关文章:

javascript - 删除 Mongo 文档及其所有引用?

reactjs - 为什么 React Native Panresponder 中存在 'offset'?

javascript - 为什么 Javascript 中的嵌套对象不保留它们的值?

javascript - 动态创建的js脚本onClick函数变量未绑定(bind)在当前值

javascript - 尝试将数据从子级传递到父级时出现 setState 问题

javascript - React - 完全加载时播放音频

reactjs - 使用 nextjs 将环境变量部署到 Vercel

javascript - Formik 元素类型无效

javascript - 了解 javascript 中 forEach 函数语句的语法

Javascript 正则表达式模式 "{{text}}"