Реагируйте 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.