firebase数据在渲染中进行比较

时间:2018-05-17 20:54:21

标签: node.js reactjs firebase react-native firebase-realtime-database

我需要帮助来比较firebase数据(if)并呈现正确的组件。

任何帮助都将不胜感激。

export default class EstoqueScreen extends Component {

constructor(props){
    super(props);
    var id=firebase.auth().currentUser.uid;
    firebase.database().ref().child('users/'+id).once('value').then((snapshot) => {
        var tipoUsuario=snapshot.val().tipo
    });
}
render(){
    console.log(this.tipoUsuario);
    if(this.tipoUsuario==='admin'){
        return(
            <View>
                 <EstoqueAdminScreen/>
            </View>
        )
    }else if(this.tipoUsuario==='vendedor'){
        return(
            <View>
                 <EstoqueVendScreen/>
            </View>
        )
    }
}

}

1 个答案:

答案 0 :(得分:1)

  export default class EstoqueScreen extends Component {

    constructor(props){
        super(props);
        state = {
          loading: true,
          tipoUsuario: null,
        }
    }

    componentDidMount(){
      var id=firebase.auth().currentUser.uid;
      firebase.database().ref().child('users/'+id).once('value').then((snapshot) => {
        this.setState({ tipoUsuario: snapshot.val().tipo, loading: false })        
      });
    }

    render(){
        console.log(this.state.tipoUsuario);
        if(this.state.loading){
          return (
            <View>Loading</View>
          )
        }
        if(this.state.tipoUsuario==='admin'){
            return(
                <View>
                    <EstoqueAdminScreen/>
                </View>
            )
        }else if(this.state.tipoUsuario==='vendedor'){
            return(
                <View>
                    <EstoqueVendScreen/>
                </View>
            )
        }
        return (
          <View>No hay tipo</View>
        )
    }
  }