注意:我之前问过this question。 Tolle将该问题标记为this问题的重复。但这是不同的,在我的情况下,引用是通过以下方式创建的:
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>'.
话虽如此,这是一个问题:
我正在使用TypeScript构建一个React应用。我正在使用React-Slick的轮播。
我正在尝试以编程方式更改轮播的幻灯片。因此,我遵循the documentation并尝试为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的目的。