我收到一个错误"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。