Svelte中API获取数据后book.bc显示undefined问题排查
问题分析与解决方法
你的问题出在API返回的数据结构嵌套关系上:从console.log(book)的输出可以看到,bc字段并不是直接属于book对象,而是嵌套在book.data这个子对象里的。所以直接访问book.bc自然会得到undefined。
两种解决方式:
- 直接访问嵌套属性
修改console.log的访问路径,从book.bc改为book.data.bc,代码如下:
onMount(async () => { const res = await fetch(uri); const data = await res.json(); book = data; console.log(book); console.log(book.data.bc); // 正确访问嵌套的bc字段 });
- 重新赋值数据层级
如果后续页面渲染只需要data里的内容,可以直接把data.data赋值给book,这样后续访问book.bc就正常了:
onMount(async () => { const res = await fetch(uri); const data = await res.json(); book = data.data; // 直接取嵌套的data对象赋值 console.log(book); console.log(book.bc); // 现在能正确获取1991 });
内容的提问来源于stack exchange,提问作者TaylorR
相关产品推荐
相关产品推荐

