Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在componentWillMount中找不到属性集_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 在componentWillMount中找不到属性集

Javascript 在componentWillMount中找不到属性集,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我知道我缺少一些基本的东西,如果有人能帮我,我会非常感激。这段代码给了我一个警告:“无法读取null的属性'setState' 如果缺少组件的初始状态,请尝试向组件添加以下函数 getInitialState: function() { return { foundUser: false }; } 如果缺少组件的初始状态,请尝试向组件添加以下函数 getInitialState: function() { return { foundUser: false

我知道我缺少一些基本的东西,如果有人能帮我,我会非常感激。这段代码给了我一个警告:“无法读取null的属性'setState'


如果缺少组件的初始状态,请尝试向组件添加以下函数

getInitialState: function() {
  return {
     foundUser: false
  };
}

如果缺少组件的初始状态,请尝试向组件添加以下函数

getInitialState: function() {
  return {
     foundUser: false
  };
}

使用此时,需要确保组件的上下文正确:

componentWillMount() {
  var self = this;
  var requestEmail = this.props.email
  new Firebase(url)
    .orderByChild('email')
    .startAt(requestEmail)
    .endAt(requestEmail)
    .once('value', function (snap) {
      var foundUser = snap.val();
      if (foundUser) {
        self.setState({found: true})
      } else {
        self.setState({foundUser: false})
      } 
    });
},
将对该的引用保存在变量中,或者您可以使用
.bind
,或者更好的es6箭头函数,因为它看起来像是在使用es6

  new Firebase(url)
    .orderByChild('email')
    .startAt(requestEmail)
    .endAt(requestEmail)
    .once('value', (snap) => {
      var foundUser = snap.val();
      if (foundUser) {
        this.setState({found: true})
      } else {
        this.setState({foundUser: false})
      } 
    });

使用此时,需要确保组件的上下文正确:

componentWillMount() {
  var self = this;
  var requestEmail = this.props.email
  new Firebase(url)
    .orderByChild('email')
    .startAt(requestEmail)
    .endAt(requestEmail)
    .once('value', function (snap) {
      var foundUser = snap.val();
      if (foundUser) {
        self.setState({found: true})
      } else {
        self.setState({foundUser: false})
      } 
    });
},
将对该的引用保存在变量中,或者您可以使用
.bind
,或者更好的es6箭头函数,因为它看起来像是在使用es6

  new Firebase(url)
    .orderByChild('email')
    .startAt(requestEmail)
    .endAt(requestEmail)
    .once('value', (snap) => {
      var foundUser = snap.val();
      if (foundUser) {
        this.setState({found: true})
      } else {
        this.setState({foundUser: false})
      } 
    });

可能是您忘记了在构造函数中创建初始状态对象,比如
this.state={foundUser:false}
是的,我尝试过了--应该已经显示了。然后我得到“无法读取null的属性'setState'。我觉得我没有正确处理作用域。您是否使用redux?如果是,您只能通过this.props访问您的状态。如果不是,您的代码的哪行显示了错误?不,我没有使用redux。它在第一行“this.setState”上显示了错误“行。可能是您忘了在构造函数中创建初始状态对象,比如
this.state={foundUser:false}
是的,我试过了--应该已经显示出来了。”。然后我得到“无法读取null的属性'setState'。我觉得我没有正确处理作用域。您是否使用redux?如果是,您只能通过this.props访问您的状态。如果不是,您的代码的哪行显示了错误?不,我没有使用redux。它在第一行“this.setState”上显示了错误“行,就是这样!非常感谢,成功了!非常感谢你。