我想在单击按钮时在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);
在您的构造函数中。保存信息方法无法访问此内容。