slickGoTo не работает на Гэтсби Shopify? - PullRequest
0 голосов
/ 07 января 2020

Я пытаюсь использовать "slickGoTo" на сайте Гэтсби, я уже делаю слайд-работы, но мне нужно использовать функцию "slickGoTo", я следую образцу скользкого кода, и это прекрасно работает

export default class SlickGoToo extends React.Component {

  render() {
    const settings = {
      dots: false,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1,
    };
    return (
      <div>
        <h2 onClick={e => this.slider.slickGoTo(1)}>Slick Go To</h2>
        <Slider ref={slider => (this.slider = slider)} {...settings}>
          <div>
            1
          </div>
          <div>
            4
          </div>
        </Slider>
      </div>
    );
  }
}

, но когда я пытаюсь реализовать на своей странице, это всегда выдает ошибку, вот моя страница:

const ProductPage = ({ data }) => {
  const product = data.shopifyProduct

  const price = Intl.NumberFormat(undefined, {
    currency: product.priceRange.minVariantPrice.currencyCode,
    minimumFractionDigits: 2,
    style: 'currency',
  }).format(product.priceRange.minVariantPrice.amount);

  const settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1
    };

  return (
    <> 
      <SEO title={product.title} description={product.description} />
      <Container>
        <TwoColumnGrid>
          <GridLeft>
          <Slider ref={slider => (this.slider = slider)} {...settings}>
            {product.images.map(image => (
              <Img
                fluid={image.localFile.childImageSharp.fluid}
                key={image.id}
                alt={product.title}
              />
            ))}
            </Slider>
            <Thumbnail>
            {product.images.map(image => (
            <div className="thumbnailWrap">
              <Img
                fluid={image.localFile.childImageSharp.fluid}
                key={image.id}
                alt={product.title}
                onClick={e => this.slider.slickGoTo(1)}
              />
              </div>
            ))}
            </Thumbnail>
          </GridLeft>
          <GridRight>
            <ProductTitle>{product.title}</ProductTitle>
            <Price>{price}</Price>
            <ProductDescription
              dangerouslySetInnerHTML={{ __html: product.descriptionHtml }}
            />

            <ProductForm product={product} />
          </GridRight>
        </TwoColumnGrid>
      </Container>
    </>
  )
}

Каждый раз, когда я добавляю этот код

ref={slider => (this.slider = slider)}

Всегда получаю:

TypeError: Невозможно установить свойство 'slider' из неопределенного

Любая помощь очень ценится. Заранее спасибо!

...