React TypeScript:如何使用c =>(this.c = c)进行引用?

时间:2018-11-08 08:53:23

标签: reactjs typescript typescript-typings ref react-ref

注意:我之前问过this questionTolle将该问题标记为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的目的。

0 个答案:

没有答案