我是React的初学者,遇到这个小问题,我无法理解。
我已成功从Firestore检索数据并更新了状态items
。当我登录item[1]
时,它返回了具有预期属性id
,name
,description
的对象,但是在尝试item[1].id
时却给了我无法读取属性'未定义的ID” 错误
能否请您提示我这里可能出什么问题了?
这是我的代码的样子
import React, { useState, useEffect, useCallback } from 'react';
import db from '../../../firestore';
const Carousel = () => {
const [items, setItems] = useState([]);
useEffect(() => {
db.collection('destinations')
.get()
.then(querySnapshot => {
const data = [];
querySnapshot.docs.map(doc => {
data.push(doc.data())
})
setItems(data);
}).catch(err => console.log(err));
}, [])
return (
<div>
{console.log(items[1])} {/* This works */}
{console.log(items[1].id)} {/* This gave error */}
</div>
)
};
export default Carousel;
答案 0 :(得分:0)
由于emtpy数组是一个真实值,您需要在返回时执行此操作
if($getCapital == $capital[$getCountry]){
echo "The capital of ".$getCountry." is ". $getCapital.", this is correct.";
$count++;
}else{
echo "Sorry, the capital of ".$getCountry." is not ". $getCapital.", but ".$capital[$getCountry];
$count = 0;
}
您需要检查return (
<div>
{items[1] &&
<div>{items[1].id}</div>
}
</div>
)
,在渲染时,仅当items[1]
有数据时才可以访问。
如果为空,则访问items
会给您发布错误。