【发布时间】:2019-07-10 09:43:24
【问题描述】:
我正在尝试渲染我的 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 中得到的:
【问题讨论】:
-
删除你的console.log并将它放在firebase.on()之外,你会看到那里。在这里,您在循环中记录了值
标签: javascript reactjs react-native rendering state