javascript - 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 中得到的:
解决方案
设置状态时,您只能通过这种方式立即在控制台中渲染任何内容。
this.setState({
// here you set up, what you need
},()=>{
console.log(this.state.anything)
})
推荐阅读
- entity-framework - 如何在 C# EF Core 查询中将字符串转换为 DateTime
- amazon-web-services - S3客户端读取配置文件
- swift - 使用 Firestore Cloud 功能与在应用程序中使用活动侦听器不同吗?
- php - 将xml插入mysql
- php - PHP Content-Disposition 文件名仅部分有效
- sql-server - SQL Server 典型转置
- python - 与 anaconda 和 python 库相关的问题
- android - RecyclerView android中的内存泄漏
- javascript - 为什么 `this.$axios.$get(...)` 在 nuxt.js 存储中不起作用?
- python - 在 swarmplot 上绘制另一个点