想要在单击按钮时在 saveInfo() 函数中执行 disNone() 函数



我想在单击按钮时在saveInfo()内执行disNone():错误:类型错误:无法读取未定义的属性"disNone"

import React, { Component } from 'react';
class Login extends Component {
constructor(props){
    super(props);
    this.state = {
        dispNone:"dispNone",
        message:"dispNone"
    };
    this.disNone = this.disNone.bind(this);
};
 disNone(){
    this.setState({
        dispNone: "dispNone",
        message:"dispBlock"
    });
}

 saveInfo(){
    this.disNone(); 
 }
render() {
    return (
       <div>
         // other code
          <button onClick={this.saveInfo}>Sign up</button>
       </div>
    );
  }
}
export default Login;

在构造函数中,除了 this.disNone = this.disNone.bind(this) ,还需要把

this.saveInfo = this.saveInfo.bind(this);

错误是因为safeInfo不知道this是什么意思,这给了你disNone is undefined的错误

编辑:我们在构造函数中执行此操作,因为我们只需要bind一次函数。或者,您也可以将其编写在 render 函数中,但这意味着每次执行 render 函数时,您都会重新绑定该函数,这是一种浪费。

第三种选择是在渲染函数中使用() => this.saveInfo(),这不需要在任何地方进行任何类型的绑定,但同样,每次render函数运行时都必须"创建"此函数。

add

this.saveInfo = this.saveInfo.bind(this);

在您的构造函数中。保存信息方法无法访问此内容。

相关内容

  • 没有找到相关文章

最新更新