1

注:以前にこの質問をしました。その質問をこの質問の重複としてマークしました。しかし、私の場合、参照は次のように作成されるという点で異なります。

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 の参照を作成しようとしました。

<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でrefを機能させるにはどうすればよいですか?

私が見つけた唯一の方法は、次のように言うことでした:

slide: any;

これは TypeScript の目的を無効にします。

4

0 に答える 0