Реагируйте TypeScript: Как сделать ссылку с помощью c => (this.c = c)?

ПРИМЕЧАНИЕ: я задавал этот вопрос ранее. Tholle, вы отметили этот вопрос как дубликат этого вопроса. Но все иначе, в этом случае ссылка создается следующим образом:

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

И в предложенном вами оригинальном вопросе так:

ref={this.stepInput}

Ответ на ваш предложенный оригинал должен был сделать это так:

private sliderRef = createRef<Slider>();
// ...
<Slider {...settings} slide={classes.slide} ref={this.sliderRef}>

Но тогда я не могу сделать:

next = () => {
  this.sliderRef.slickNext();
};

потому что я получаю ошибку:

[ts] Property 'slickNext' does not exist on type 'RefObject<Slider>'.

С этим, как говорится, вот вопрос:

Я создаю приложение React с использованием TypeScript. Я использую карусель React-Slick.

Я пытаюсь программно изменить слайд карусели. Поэтому я следовал за документацией и пытался создать ссылку для Slider.

<Slider ref={slider => (this.slider = slider)} {...settings}>

Сейчас TypeScript жалуется, что не знает слайдера. Поэтому я попытался объявить это так:

slider: Slider | null;

Если я попробую это так, я получу ошибку:

[ts] Property 'slider' has no initializer and is not definitely assigned in the constructor.

Как можно заставить ссылку работать с TypeScript?

Единственный способ, которым я мог найти, это сказать:

slide: any;

который побеждает цель TypeScript.

0 ответов

Другие вопросы по тегам