首页 > 解决方案 > This.state 只返回 1 项,在控制台日志中我看到 2

问题描述

我正在尝试渲染我的 setState 对象,但是当我渲染它们时,我只看到 1,但在控制台日志中,我可以看到两个对象都已保存。

  getUserTeams() {
    const user = firebase.auth().currentUser;
    var uid = user.uid;

    uzivateleRef.on("value", snapshot => {
      let dataTeams = snapshot.child("/" + uid + "/teams").val();

      let n = Object.keys(dataTeams).map((key, i) => {
        this._getTeamsAndRoles(
          dataTeams[key].roleID,
          dataTeams[key].teamID,
          uid
        );
      });
    });
  }

  _getTeamsAndRoles = (roleID, teamID, uid) => {
    fireRef.on("value", snapshot => {
      let dataTeams = snapshot.child("roles/teams/" + teamID + "/").val();
      let dataRoles = snapshot.child("roles/role/" + roleID + "/").val();

      let userTeams = (
        <View key={dataTeams.id} style={styles.row}>
          <Text style={styles.textContainerName}>{dataTeams.name}</Text>
          <Text style={styles.textContainerName}>{dataRoles.name}</Text>
        </View>
      );
      this.setState({ userTeams });
      console.log(this.state.userTeams);
    });
  };

而且我需要得到这两个项目,而不仅仅是 1 这是我的渲染方式setState

    <Text style={styles.h1}>- VAŠE TEAMY -</Text>
    {this.state.userTeams}
    <Button
      type="clear"
      titleStyle={{ color: "#3c59ff" }}
      title="Přidat se do nového teamu"
      onPress={null}
    />

这就是我在 console.log 中得到的:

在此处输入图像描述 在此处输入图像描述

标签: javascriptreactjsreact-nativerenderingstate

解决方案


设置状态时,您只能通过这种方式立即在控制台中渲染任何内容。

this.setState({ 
   // here you set up, what you need 
},()=>{
    console.log(this.state.anything)
})

推荐阅读