我已经开始使用gatsby和graphQL了,我正在尝试从rest API中获取dat。我能够遍历数据并将其登录到控制台。但是当使用graphQL时,我只得到一个结果。请参阅下面的代码。我很欣赏任何有关我做错事的帮助。
exports.sourceNodes = async ({ boundActionCreators }) => {
const { createNode } = boundActionCreators;
console.log(createNode)
const fetchData = () => axios.get(url)
const res = await fetchData();
console.log(res.data);
res.data.blogArticle.forEach((article, index) => {
return createNode({
...article,
id: `£{index}`,
children: [],
parent: `__SOURCE__`,
internal: {
type: `BlogArticle`,
content: JSON.stringify(article),
contentDigest: crypto
.createHash(`md5`)
.update(JSON.stringify(article))
.digest(`hex`)
},
heading: article.heading,
subheading: article.subheading,
content: {
text: article.content.text,
videoURL: article.content.videoURL,
imageURL: article.content.imageURL
}
});
});
res.data.emptyLegs.forEach((leg, index) => {
const emptyLegNode = {
from: leg.From,
to: leg.To,
aircraft: leg.Aircraft,
seats: leg.Seats,
date: leg.Date,
price: leg.Price,
id: `£{index}`,
children: [],
parent: `__SOURCE__`,
internal: {
type: `EmptyLegs`,
contentDigest: crypto
.createHash(`md5`)
.update(JSON.stringify(res.data.emptyLegs))
.digest(`hex`)
},
};
createNode(emptyLegNode);
});
return;
};
答案 0 :(得分:1)
我认为一个简单的拼写错误导致了这个问题。
变化:
return createNode({ id: `£{index}`,
为:
return createNode({ id: `${index}`,
并且在空腿节点id中是相同的:${index}
,
这应该可以解决错误。