将 graphql 查询片段放入组件 (Gatsby+DatoCMS) 的问题

Issues with graphl query fragment into component (Gatsby+DatoCMS)

我试图通过 graphql 从 DatoCMS 将数据从我的主页传递到使用片段的组件,但是,我一直收到 TypeError: Cannot read property 'datoCmsHome' of undefined,当我在 GraphiQL 上导航时,它说片段是未在任何地方使用。

page/index.js

export const query = graphql`
  query HomePageQuery {
    datoCmsHome {
      ...Slider_carouselImages
      introductionbody
      ourvaluesbody
      ourphilosophybody
      insuranceproviderslogos {
        id
        title
        url
      }
    }
  }
`

组件carousel.js

const SimpleSlider = ({ data }) => ({
  render() {
    var settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1
    };
    return (
      <Slider {...settings}>
        <div>
          {data.datoCmsHome.carouselimages.map(({ id, url }) =>
            <div key={id}>
              <img src={url} />
            </div>
          )}
        </div>
      </Slider>
      );
    }
  }
);

export default SimpleSlider

export const query = graphql`
  fragment Slider_carouselImages on DatoCmsHome {
    carouselimages {
      id
      url
    }
  }
`

我有点迷失了自己所缺少的东西,因此非常感谢您的帮助!

发现在 index.js 上使用 <SimpleSlider data={data} /> 足以将数据获取到组件,而不需要任何 graphql 片段。