如何解决“无法读取null的属性'setState'”

问题描述 投票:-1回答:1

我尝试在componentDidMount的for循环中使用setState更新状态,但每次遇到此错误“无法读取null的'setState'属性”

import React, {Component} from 'react';
import '../../../Config'
import * as firebase from  'firebase';
import './Header.scss'
class MessageBox extends Component {
  constructor(props){
    super(props);
    this.state = {

      users:[],
}
    this.setState= this.setState.bind(this)
  }
  componentDidMount(){

   firebase.database()
    .ref("Users")
    .on('value', gotData , errData);
    function gotData (data) {
      var users = data.val();
      console.log(users ,"uuuuuuuuuuuu")
      var keys=Object.keys(users);
      console.log(keys,"keys")
      for (var i = 0; i<keys.length; i++){
        var k = keys[i];
        var myuser = (users[k]);
           this.setState({users: myuser});
        console.log(myuser,'newUser')
        console.log(myuser.username,"myuserName")
        console.log(myuser.id,"myuserId")
        console.log(myuser.imageURL,"myuserImage")
reactjs state lifecycle setstate
1个回答
0
投票

而不是

function gotData (data) {

使用此

 gotData=()=>{//your code;
 }

如用旧语法定义时,在react'this'中指的是cur函数

© www.soinside.com 2019 - 2024. All rights reserved.