問題タブ [react-ref]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4204 参照

reactjs - React.JS Ref の Ref エラー - createRef、useRef、および Refs の使用

refReactを使用してプロパティを使用しようとしています。ブラウザに奇妙なエラーが表示され、何が問題なのかわかりません。このエラーが発生する理由を誰かに説明してもらえますか:

エラー: 不変違反: addComponentAsRefTo(...): ReactOwner のみが参照を持つことができます。これは通常、所有者を持たない (つまり、別のコンポーネントのrenderメソッド内で作成されていない) コンポーネントに ref を追加しようとしていることを意味します。ref を保持する新しい最上位コンポーネント内でこのコンポーネントをレンダリングしてみてください。

このコードがある場合:

0 投票する
6 に答える
94770 参照

javascript - this.refs.something は「未定義」を返します

定義された要素があり、ref最終的にページにレンダリングされます:

などのDOM要素のプロパティにアクセスしたいoffset...。しかし、私は取得し続けてundefinedおり、その理由がまったくわかりません。いくつかの検索の後refs、1 つのファイルにのみ適用されることは明らかですが、この 1 つのページ以外では使用していません。私はそれを記録するためにこれを言っています:

console.log('REFS', this.refs.russian);

何が原因でしょうか?

0 投票する
4 に答える
43243 参照

react-native - Flatlist で React-Native を一番上にスクロール

フラットリストの一番上までスクロールするのに苦労しているので、助けていただければ幸いです。

基本的に、firebase から最初の 5 項目を取得し、onEndReached が呼び出されると、次の 5 項目をリストに追加します。

今のところ、ビューの上部に次のことを行う更新ボタンがあります。

最初の 5 つの項目がレンダリングされたときにこれをクリックすると、期待どおりにリストの一番上までスクロールします。この問題は、リストが追加された後にのみ発生します (アイテムが表示されていないと思いますか?)。

「ScrollToItem」も試しましたが、React Native docs の次の理由により、これは機能しないと思います。

注: getItemLayout prop を指定しないと、レンダリング ウィンドウの外側の場所にスクロールすることはできません。

誰が何が起こっているのか説明したり、私が間違っていることを知ったりできますか?

前もって感謝します!

getItemLayout: (これが何をするのか、長さやオフセットなどをどのように計算するのか完全にはわかりません)

0 投票する
0 に答える
693 参照

reactjs - React TypeScript:c => (this.c = c)を使用して参照を作成する方法は?

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

そして、提案された元の質問では、次のようになります。

提案されたオリジナルの答えは、次のようにすることでした。

しかし、私はできません:

エラーが発生するため:

これが言われているので、ここに質問があります

TypeScript を使用して React アプリを構築しています。React-Slick のカルーセルを使用しています。

カルーセルのスライドをプログラムで変更しようとしています。したがって、ドキュメントに従って、Slider の参照を作成しようとしました。

TypeScript は、スライダーを認識していないと文句を言います。そこで、次のように宣言してみました。

このように試してみると、エラーが発生します。

TypeScriptでrefを機能させるにはどうすればよいですか?

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

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