根据结果​​改变值

时间:2017-12-03 18:20:58

标签: javascript reactjs

你可以帮我解决这个问题吗?我试图返回一个let变量,具体取决于下面的条件。

class Main extends React.Component{
  render(){
    let content = '';
    firebase.auth().onAuthStateChanged(function(user) {
        if (user) {
          // User is signed in.
          content = 'Logged in';
          // ...
        } else {
          content = 'Logged Out';
          // ...
        }
        console.log({content});
      });
    return <h1>{content}</h1>;
  }
}

虽然它没有返回任何东西。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用componentDidMount进行反应组件中的网络参与操作。

您的代码应该是这样的:

class Main extends React.Component {
  constructor(props) {
    super(props);
    this.state = { content: '' };
  }
  componentDidMount() {
    firebase.auth().onAuthStateChanged(function(user) {
      this.setState({ content: user ? 'Logged in' : 'Logged Out' });
    })
  }
  render() {
    return <h1>{content}</h1>;
  }
}