1

注意:我之前问过这个问题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 的目的。

4

0 回答 0