注:以前にこの質問をしました。その質問をこの質問の重複としてマークしました。しかし、私の場合、参照は次のように作成されるという点で異なります。
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 の目的を無効にします。