javascript - 我怎样才能从这个 JS 对象中取出这个属性?
问题描述
我正在使用 graphQL 和 gatsby 为我正在构建的博客网站渲染图像,但是当我绘制对象时,我无法取出每个图像。我在这里有对象数组,但似乎无法取出fluid.src。
这是我到目前为止所做的,但似乎无法更进一步。
console.log(data.allContentfulLongPost.edges.map((e) => e.node.image))
我得到:
[
{
"fluid": {
"src": "//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=500&h=500&q=50",
"srcSet": "//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=125&h=125&q=50 125w,\n//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=250&h=250&q=50 250w,\n//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=500&h=500&q=50 500w,\n//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=750&h=750&q=50 750w,\n//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=1000&h=1000&q=50 1000w,\n//images.ctfassets.net/8olws3vbib1c/5l1P6kfntYV4qnU8i26dcd/ac2321ca81df3b1db52d6a2be54f35dd/plant_protein.jpg?w=1500&h=1500&q=50 1500w"
},
"title": "Plant Protein Powder"
},
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null
]
当我尝试
console.log(data.allContentfulLongPost.edges.map((e) => e.node.image.fluid.src))
我得到“流体未定义”
我知道其中只有一个有图像
解决方案
所以数组中的第一个项目有一个图像,但所有其他的都是空的......
您可以先过滤它们:
data.allContentfulLongPost.edges
.filter(e => e.node.image)
.map((e) => e.node.image.fluid.src)
这个:
.filter(e => e.node.image)
null
将在您的演示输出中删除所有没有图像(图像在哪里)的数组值。
推荐阅读
- excel - 如何检查用户窗体上是否存在变量
- python - SSLError 意外的 EOF - Python 2.7
- python-3.x - 如何根据逗号(',')拆分字符串而不考虑括号内的逗号('('和')')?
- php - $_FILES 在删除文件时为空,但不是单击
- r - 如何在 R 中使用 RSelenium 和 rvest 遍历多个网站并提取相同的信息?
- java - 禁用编辑文本时 OnClickListener 不起作用
- python - 如何在 Python 中使用海龟图形制作线性图形计算器?
- android - 为什么listview没有出现在xml中?
- jenkins - Jenkins web ui完全没有响应
- django-rest-framework - 如何使用基于函数的视图在 django rest 框架中显示 html 表而不是原始数据?