Javascript 如何在ComponentWillmount ReactJS中使用setState()

Javascript 如何在ComponentWillmount ReactJS中使用setState(),javascript,reactjs,react-lifecycle,Javascript,Reactjs,React Lifecycle,我是新手。我正在尝试使用它创建firebase应用程序。因此,在componentWillMount中,我检查用户是否登录,并根据此设置状态布尔值 componentWillMount() { var config = {...}; Firebase.initializeApp(config) Firebase.auth().onAuthStateChanged(function(user){ if(user){ console.log(

我是新手。我正在尝试使用它创建firebase应用程序。因此,在componentWillMount中,我检查用户是否登录,并根据此设置状态布尔值

  componentWillMount() {
    var config = {...};
    Firebase.initializeApp(config)

    Firebase.auth().onAuthStateChanged(function(user){
      if(user){
        console.log("User logined");
        this.setState({
          isLogined : true
        })
      }else{
        console.log("User isn't logined");
        this.setState({
          isLogined : false
        })
      }
    })

  }
但它表明setState不是一个函数

index.js:2178 TypeError: this.setState is not a function
    at Object.next (App.js:31)
    at index.cjs.js:1353
    at index.cjs.js:1457

需要帮助:

问题来自:

Firebase.auth().onAuthStateChanged(function(user){
这不是重新传送到反应组件。相反,请尝试:

Firebase.auth().onAuthStateChanged((user) => {

问题来自:

Firebase.auth().onAuthStateChanged(function(user){
这不是重新传送到反应组件。相反,请尝试:

Firebase.auth().onAuthStateChanged((user) => {
几件事:

1您需要将此代码移动到componentDidMount。 组件willmount是。关于为什么您应该选择componentDidMount的更多信息

2将onAuthStateChanged回调更改为

几件事:

1您需要将此代码移动到componentDidMount。 组件willmount是。关于为什么您应该选择componentDidMount的更多信息

2将onAuthStateChanged回调更改为


我只是从Firebase文档复制粘贴的。我会记住的。Tysm@Kim你能把文档链接起来吗?我们应该试着更新一下不。。这是firebase针对javascript项目的文档。这是我的错:我只是从Firebase文档复制粘贴了它。我会记住的。Tysm@Kim你能把文档链接起来吗?我们应该试着更新一下不。。这是firebase针对javascript项目的文档。这是我的错: