注意:我之前问过这个问题。Tolle您将该问题标记为该问题的重复项。但它是不同的,在我的例子中,ref 是这样创建的:
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 的轮播。
我正在尝试以编程方式更改轮播的幻灯片。因此,我按照文档并尝试为 Slider 创建一个 ref。
<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.
应该如何使 ref 与 TypeScript 一起工作?
我能找到的唯一方法是说:
slide: any;
这违背了 TypeScript 的目的。