ค้นหาเว็บไซต์

reactjs - คำสั่ง GraphQL แสดงผลลัพธ์ดิบเท่านั้น


ฉันมีการคิวรี GraphQL ที่ทำงานได้บางส่วน (React, Gatsby, Typescript) แต่ฉันได้แค่ให้เบราว์เซอร์แสดงข้อมูล JSON ดิบ (สิ่งที่เรียกว่า "stringify" คือสิ่งที่มองเห็นได้ถูกต้อง เป็น JSON ดิบ)

ทุกครั้งที่ฉันพยายามใช้การผูกข้อมูล ฉันได้รับข้อความแสดงข้อผิดพลาด "TypeError: undefined is not an object (evaluating 'ProjectTitles.edges.node')" ในเบราว์เซอร์ แต่ไม่ปรากฏในคอนโซล อะไรอาจผิดพลาด? นี่คือโค้ด:

    import { graphql, useStaticQuery } from "gatsby";
    import React, { Fragment } from "react";

    const ProjectList = () => {
      const ProjectTitles = useStaticQuery(graphql`
        {
          allMarkdownRemark(sort: { fields: frontmatter___title }) {
            edges {
              node {
                frontmatter {
                  title
                }
              }
            }
          }
        }
      `);
      return (
        <Fragment>
          <h2>Project titles</h2>
          <div>{ProjectTitles.edges.node.frontmatter.title}</div>
          {/* <div>{ProjectTitles.allMarkdownRemark.edges.node.frontmatter.title}</div> */}
          {/* <div>{ProjectTitles}</div> */}
          <pre>{JSON.stringify(ProjectTitles, null, 2)}</pre>
        </Fragment>
      );
    };

    export default ProjectList;

คำตอบ #1

เนื่องจาก edges น่าจะเป็นอาเรย์ คุณจึงจำเป็นต้องเข้าถึงรายการบางรายการหรือแมปอาเรย์ทั้งหมด เช่น

{ProjectTitles.edges.map(node => (
    <div>{node.frontmatter.title}</div>
))}