为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 React Js 按钮单击调用函数

无法从 React Js 按钮单击调用函数

慕沐林林 2023-07-06 17:15:22
我有 Message.js -import React from 'react';import { Button } from 'reactstrap';class Message extends React.Component{    constructor()    {super()this.state={    message:"This is message"}    }    changeMessage() {        alert("In");        this.setState({            message :"message changed"        });    }    render=()=> {        return <div>            <h1>{this.state.message}</h1>            <Button onClick="{this.changeMessage}" color="success">success</Button>        </div>    }}export default Message按钮点击在这里不起作用。我尝试过 -<Button onClick={changeMessage} color="success">success</Button>然后也尝试过 -<Button onClick="changeMessage()" color="success">success</Button>这也行不通。Uncaught TypeError : this.props.onClick is not a function.
查看完整描述

5 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

class Message extends React.Component {

  constructor() {

    super();

    this.state = {

      message: "This is message",

    };

  }

  changeMessage = () => {

    alert("In");

    this.setState({

      message: "message changed",

    });

  };

  render = () => {

    return (

      <div>

        <h1>{this.state.message}</h1>

        <button onClick={this.changeMessage} color="success">

          success

        </button>

      </div>

    );

  };

}

export default Message;


查看完整回答
反对 回复 2023-07-06
?
慕容3067478

TA贡献1773条经验 获得超3个赞

onClick={this.changeMessage} need not to be a string .

尝试这个 :

<Button onClick={()=>this.changeMessage()} color="success">success</Button>


查看完整回答
反对 回复 2023-07-06
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您传递的 onClick 应该是一个函数,并且该函数必须绑定到在“ changeMessage ”函数内使用“ this ”指针,因此您可以尝试使用如下,

<Button onClick={this.changeMessage.bind(this)} color="success">success</Button>


查看完整回答
反对 回复 2023-07-06
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

<Button onClick={this.changeMessage} color="success">success</Button>


<Button onClick={() => {this.changeMessage(your params)}} color="success">success</Button>


查看完整回答
反对 回复 2023-07-06
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

你不需要在reactjs中引用函数。


就这样分配吧。


<Button onClick={this.changeMessage} color="success">success</Button>

和功能


changeMessage = () => {

        alert("In");

        this.setState({

            message :"message changed"

        });

    }


查看完整回答
反对 回复 2023-07-06
  • 5 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信