当我console.log hero时,我得到了所有的数据。但是当我在return语句中的任何地方使用hero.tag或hero.heading时,站点都不会加载。
未捕获的类型错误:无法读取undefined的属性(阅读'heading')
或
未捕获的类型错误:无法读取未定义的属性(阅读'tag')
const [hero, setHero] = useState([])
useEffect(() => {
client
.fetch(
`*[_type == "hero"]{
background{
asset->{
_id,
url
}
},
tag,
heading,
subheading
}`
)
.then((data) => setHero(data)
)
.catch(console.error);
}, []);
我可以看到它,因为return语句在数据可以从API中获取之前运行。我尝试使用async和await,但我可能用错了。
1条答案
按热度按时间dbf7pr2w1#
我从一个朋友那里得到了帮助,并使用axios来获取数据(我不认为这是主要的修复)
useEffect(() => { axios .get('https://vve5jxlt.api.sanity.io/v2021-10-21/data/query/production?query=*%5B_type%20%3D%3D%20%22hero%22%5D') .then(response => setHero(response.data)); }, []);
在返回的jsx中我们加上了'
这不是我实际的jsx,但关键是这是通往结果的路径。