首页 > 解决方案 > 为什么我的 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;

标签: javascriptreactjsevents

解决方案


这是因为您必须将函数传递给onClick. 在这里,您不是在传递函数,而是在传递结果props.setOn("no")undefined. 并且您的函数在渲染时触发,因为这是评估和传递的onClick值的地方,这使您的语句执行。button

试试这个:

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

推荐阅读