如何解决如何在api函数中设置状态
我在类方法中包含以下代码:
ref
.orderByValue()
.equalTo(email)
.once("value",snapshot => {
if (snapshot.exists()) {
console.log(this);
this.setState({ signedUp: true });
} else {
ref.update({ [newKey]: email });
}
});
除非用户已经注册,否则它将在提交时更新我的Firebase数据库。一个typeError说this.setState is not a function
。但是,当我使用控制台日志this
时,控制台会打印出该类。记录this.state
也会打印出状态。
我该如何解决?我想从此函数内部更新状态。
解决方法
最好的解决方案是使用功能组件。
但是,如果您想使用类组件,则可能是一个绑定问题。
因此,如果是在名为func
的函数中触发的,则应将此函数绑定到构造函数中。
...
constructor(props) {
...
this.func = this.func.bind(this);
...
}
func() {
...
ref
.orderByValue()
.equalTo(email)
.once("value",snapshot => {
if (snapshot.exists()) {
console.log(this);
this.setState({ signedUp: true });
} else {
ref.update({ [newKey]: email });
}
});
...
}
如果不想绑定此功能,则应使用箭头功能。
func = () => {
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。