gpt4 book ai didi

javascript - undefined 不是一个对象(评估 this.state),但在我的方法调用中添加了 bind(this)

转载 作者:行者123 更新时间:2023-11-28 14:24:32 24 4
gpt4 key购买 nike

在我的应用程序中,我添加了可触摸不透明度,当我单击它时,我需要运行一个功能。

<TouchableOpacity
activeOpacity={0.9}
style={styles.Button}
onPress={this.login_account.bind(this)}
>
<Text style={styles.ButtonText}>Login</Text>
</TouchableOpacity>

当我尝试在该函数内使用 this.setState 时,它​​会抛出警告 enter image description here

我做错了什么?

这是我的login_account函数

login_account() {
let username = this.state.username;
let password = this.state.password;

error_message = "";
has_error = false;
if (username == "" || password == "") {
error_message += "Username and password should no be empty.";
}
if (has_error == false) {

//code here....

} else {
this.setState({
status_code: 6001,
message: error_message,
show_popup: true
});
}
}

最佳答案

您将函数绑定(bind)到的 this 可能不是组件的函数,具体取决于该代码的位置。

尝试在构造函数中进行绑定(bind):

constructor(props) {
super(props);
...
this.login_account = this.login_account.bind(this);
}

或者将 login_account 方法转换为箭头函数,这样它就不会覆盖 this:

login_account = () => {
...
};

关于javascript - undefined 不是一个对象(评估 this.state),但在我的方法调用中添加了 bind(this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54009737/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com