【问题标题】:Getting GraphQL data into Gatsby将 GraphQL 数据导入 Gatsby
【发布时间】:2020-09-24 13:27:44
【问题描述】:

我在操场上有一个有效的查询。但不确定如何将这些数据放入页面?以下是我的工作查询。

我是否使用<p>{data.node.GitHub_Repository.name}</p> 来获取相关数据,我正在为我的个人网站构建类似于 GitHub 个人资料页面上固定存储库的东西。

尝试了一些东西,但总是得到TypeError: undefined is not an object (evaluating....

const PinnedRepos = () => {
    const data = useStaticQuery(graphql`
    query{
        github {
          user(login: "mrpbennett") {
            pinnedItems(first: 6, types: REPOSITORY) {
                edges {
                node {
                    ... on GitHub_Repository {
                    name
                    description
                    url
                    primaryLanguage {
                        name
                        color
                    }
                    }
                }
                }
            }
            }
        }
      }
    `)

    return (
        <div>
            <p>{data.node.GitHub_Repository.name}</p>
        </div>
    )
}

游乐场查询如下:

query{
        github {
          user(login: "mrpbennett") {
            pinnedItems(first: 6, types: REPOSITORY) {
                edges {
                node {
                    ... on GitHub_Repository {
                    name
                    description
                    url
                    primaryLanguage {
                        name
                        color
                    }
                    }
                }
                }
            }
            }
        }
      }

【问题讨论】:

    标签: reactjs graphql gatsby


    【解决方案1】:

    您没有正确访问查询数据。另请注意,pinnedItems 被定义为一个数组,因此您必须对其进行映射并呈现如下所示的节点名称

    return (
        <div>
            {data.github.user.pinnedItem.edges.map(({node}) => <p>{node.name}</p>)
        </div>
    )
    

    【讨论】:

    • 谢谢我试一试,我怎样才能构建一个包含所有项目的组件?
    • 我想显示它,以便我可以使用与 GitHub 固定存储库相同的方式显示
    • 在固定项目上循环并在地图中呈现您想要的任何内容将帮助您实现这一目标。请注意,您可以将 map 返回的 JSX 分离到单独的组件中,以使其更清晰
    • 嗯我已经使用了你的代码示例。我仍然收到以下错误:TypeError: undefined is not an object (evaluating 'data.github.user.pinnedItem.edges') - 但我仍然在操场上得到结果
    • @mrpbennett pinnedItemsssssssssssssss ... 只需按照以data为前缀的查询结构即可
    猜你喜欢
    • 1970-01-01
    • 2021-05-08
    • 2022-07-03
    • 2021-03-25
    • 2018-10-16
    • 2021-07-16
    • 2020-08-24
    • 2020-08-04
    • 2020-05-03
    相关资源
    最近更新 更多