我试图从firebase数据库中获取数据,我很好地获得了数据,但当我试图推送数组中接收的所有项目时,我获得了一个数组,我无法像任何其他javascript数组一样迭代。这是我的代码:
var li = [];
useEffect(() => {
firebaseDB
.database()
.ref("collection")
.on("value", (data) => {
let all = data;
all.forEach((element) => {
li.push(element.val());
});
});
}, []);
console.log(li);
当我做console.log(li)
时,我得到的是li
数组,它似乎对数据没问题,但当我试图对数组做一些事情时,例如,如果我做console.log(li.length)
,它会打印0
,但数组中有多个项。问题是我的li
数组的行为不像数组。请帮我找出的问题所在
不能像那样推送数据。试试这个代码。
const [arr,setArr] = useState([]);
useEffect(()=>{
firebaseDB
.database()
.ref("collection")
.on("value", (snapshot) =>{
let data = [];
snapshot.forEach((child)=>{
data.push(child.val());
})
setArr(data);
});
},[])
使用forEach关键字进行迭代。它工作于