Graphl查询片段分解为组件(Gatsby + DatoCMS)的问题

时间:2018-07-13 14:52:30

标签: reactjs graphql gatsby

我正在尝试使用片段将通过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
    }
  }
`

我有点迷失了我所缺少的,所以我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

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