【发布时间】:2020-07-23 10:40:02
【问题描述】:
在函数内部,我首先创建一个当前状态的数组,用于 for 循环。但是,当尝试获取它的长度时,它返回 0。从状态和新数组中记录数组表明该数组确实包含正确的对象,甚至将长度显示为适当的数量。
console.log(this.state.teams);
console.log(this.state.teams.length);
let sortedTeams = this.state.teams;
console.log(sortedTeams);
console.log(sortedTeams.length);
什么可能导致长度返回为 0,即使它显然不是? 数组从 firestore 映射如下:
getTeamsAndSort() {
let teams = [];
docRef.collection('Teams').get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
let name = doc.data().name;
let seeding = doc.data().seeding;
let team = {name, seeding};
teams.push(team);
});
teams.sort((a, b) => (a.seeding > b.seeding) ? 1 : -1);
});
this.setState({teams});
};
在我调用 getTeamsandSort() 后立即调用我需要团队 [] 长度的函数,以防这是一个异步问题。
【问题讨论】:
标签: javascript arrays reactjs google-cloud-firestore