如何从GatsbyJS graphql查询中的数组中获取特定的JSON对象

时间:2018-07-15 15:19:02

标签: graphql graphql-js gatsby

我有一组json数据,它们返回一个对象数组。我正在使用此数组创建页面,因此在每个页面中,我只希望能够绘制该页面中所需的对象的图形,但是我正为此而努力。

在我的页面中,我想执行以下查询操作:

export const query = graphql`
query shopkeeperQuery($skname: String!) {
    allDataJson {
        edges {
            node {
                shopkeepers(where: { name: { eq: $skname } }) {
                    name
                    city
                    cards
                }
            }
        }
    }
}
`

在gatsby-node.js中,我正在创建如下页面:

exports.createPages = ({ graphql, boundActionCreators }) => {
const { createPage } = boundActionCreators;
return new Promise((resolve, reject) => {
    graphql(`
    {
        allDataJson {
            edges {
                node {
                    shopkeepers {
                        name
                        city
                        cards
                    }
                }
            }
        }
    }`).then(result => {
        result.data.allDataJson.edges[1].node.shopkeepers.forEach((sk) => {
            createPage({
                path: `/shopkeepers/${sk.name.toLowerCase().split(" ").join("-")}`,
                component: path.resolve(`./src/pages/shopkeeper.js`),
                context: {
                    skname: sk.name,
                },
            });
        });
        resolve();
    });
});
};

有没有办法让我错过?

0 个答案:

没有答案