从 URQL Svelte Store 中获取嵌套数据 - 无法读取 属性
Get nested data out of URQL Svelte Store - Cannot read property
使用 URQL 从 GraphCMS 中提取 post - URQL 创建的商店如下所示:
{
"stale": false,
"fetching": false,
"data": {
"post": {
"title": "Technical SEO with GraphCMS",
"date": "2020-05-05",
"tags": [
"SEO"
],
"content": {
"html": "<p>Lorem ipsum dolor sit amet</p>",
"__typename": "RichText"
},
"coverImage": {
"url": "https://media.graphcms.com/resize=fit:clip,width:600/hujVF2oRi2J1gDKdk0ic",
"__typename": "Asset"
},
"__typename": "Post"
}
}
}
我想隔离 post 变量之后的部分。
当我尝试通过以下方式访问它时:$post.data 一切正常,但我仍然在输出中得到 'post' 变量。
当我使用 $post.data.post 时出现 500 错误 - 无法读取 属性 'post' of undefined
如何访问这个嵌套值?
错误很可能被触发,因为您试图在(异步)请求实际完成之前读取 $post.data.post
。
尝试添加条件,例如:
$: postData = $post.fetching ? undefined : $post.data.post
或者,如果您的项目设置为使用 ES11,您可以尝试使用可选链接:
$: postData = $post.data?.post
虽然我认为上面的第一种方法更好,因为它更好地表达了意图并且更具可读性。
使用 URQL 从 GraphCMS 中提取 post - URQL 创建的商店如下所示:
{
"stale": false,
"fetching": false,
"data": {
"post": {
"title": "Technical SEO with GraphCMS",
"date": "2020-05-05",
"tags": [
"SEO"
],
"content": {
"html": "<p>Lorem ipsum dolor sit amet</p>",
"__typename": "RichText"
},
"coverImage": {
"url": "https://media.graphcms.com/resize=fit:clip,width:600/hujVF2oRi2J1gDKdk0ic",
"__typename": "Asset"
},
"__typename": "Post"
}
}
}
我想隔离 post 变量之后的部分。
当我尝试通过以下方式访问它时:$post.data 一切正常,但我仍然在输出中得到 'post' 变量。
当我使用 $post.data.post 时出现 500 错误 - 无法读取 属性 'post' of undefined
如何访问这个嵌套值?
错误很可能被触发,因为您试图在(异步)请求实际完成之前读取 $post.data.post
。
尝试添加条件,例如:
$: postData = $post.fetching ? undefined : $post.data.post
或者,如果您的项目设置为使用 ES11,您可以尝试使用可选链接:
$: postData = $post.data?.post
虽然我认为上面的第一种方法更好,因为它更好地表达了意图并且更具可读性。