我正在用GatsbyJS构建一个分离的Drupal网站。我正在尝试显示nodePersonalInformation的标题。这是GatsbyJS graphQL游乐场中的查询:
--reflink=true
查询结果:
{
allUserUser(filter: {name: {eq: "bobdole"}}) {
edges {
node {
name
relationships {
nodePersonalInformation {
title
}
}
}
}
}
}
我使用这些变量成功显示了“名称”:
{
"data": {
"allUserUser": {
"edges": [
{
"node": {
"name": "bobdole",
"relationships": {
"nodePersonalInformation": [
{
"title": "bobdole"
},
{
"title": "bobdole"
}
]
}
}
}
]
}
}
}
但是,因为“ nodePersonalInformation”是一个数组,所以我不知道如何显示“ title”。我已经试过.map里面的.map没有运气了。 任何帮助将不胜感激。
谢谢 安迪
答案 0 :(得分:0)
您可以获取nodePersonalInformation
中包含的两个标题属性,然后获取此数组的第一个元素。
为此,首先必须获得nodePersonalInformation
。
尝试
const titles = data.map(edge => edge.node.relationships.nodePersonalInformation.map(title => title)[0]);
该行末尾的 [0]
仅允许获取第一个map
的第一个结果。如果不这样做,则会得到一个数组数组。
之后,您可以在此行中获得所需的标题:
const uniqueTitle = title[0]
如果您总是有一条边缘,也可以强制获得第一条边缘项目:
const data = this.props.data.edges[0]
。这样,您获得标题数组时就不需要[0]
。