使用state时在react native中获取未定义的对象错误



我收到一个错误"undefined不是对象(正在计算"this.state.user"(同时通过按钮调用登录功能。this.state.user的值来自onchangeText方法。请帮忙。该函数位于firebase值事件内部。

constructor(props) {
super(props);
this.state = { user: '', password: '' };
}
login = () => {
db.ref('admins/').once('value', function(snapshot) {
var user = snapshot.child('user_1').val();
if (this.state.user == user) {
this.props.navigation.navigate('FACULTYUI');
}
});
};

更改此项:

db.ref('admins/').once('value', function(snapshot) {

进入这个:

db.ref('admins/').once('value', ((snapshot) => {

使用使用词法范围的箭头函数,这意味着在function外部定义的变量在内部也将相同。

来自文档:

箭头函数没有自己的这个。使用了封闭词法范围的this值;箭头函数遵循正常的变量查找规则。所以,当搜索当前范围中不存在的this时,箭头函数最终会从其封闭范围中找到this。

相关内容

  • 没有找到相关文章

最新更新