問題タブ [react-forwardref]
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.
reactjs - 関連のないコンポーネントから ref にアクセスするには?
アプリの一部のメニューが展開されたときに静的にしたい固定位置のナビゲーションバーがあります。
問題は、両方のコンポーネントがアプリの階層構造で互いに遠く離れていることです。
reactjs - 要素の React 配列を関数コンポーネントに抽出する
私が書いたこのコンポーネントを使用しようとしています:
... 1 回はTextfield
of 型内select
で、もう 1 回はMenu
コンポーネント内で。ただし、ブラウザでアクセスすると、次のエラーが発生します。
これを解決する方法について何か考えはありますか?
アップデート:
このコンポーネントを呼び出す方法は次のとおりです。
更新 2
エラースタックは次のとおりです。
reactjs - react-router-dom & マテリアル ui: forwardRef の問題
いくつかの投稿や materail-ui Web サイトの例で言及されているように forwardRef を適用しましたが、コンソールにはまだ警告が表示されます。そして、私はその理由を本当に理解していません。
Material-UI リンク コンポーネントに埋め込まれた react-router リンクであるアイテムのリストを含むドロワーを作成しようとしています。私が作成したグローバル MUI テーマを活用するために、それらを埋め込んでいます。
PS : これは typescript コードです。Ref ストロングタイピングは地獄です ;-)
問題を再現する CODESANBOX はこちらです。ドロワーを表示するには、codesandbox ブラウザ ページを十分に拡張してください。
リンク コンポーネント
引き出し部品
引き出しと呼ぶホームページ
javascript - 理解: 警告: 関数コンポーネントに参照を与えることはできません
refs は、状態を変更せずに DOM 要素に直接アクセスするために使用されることを知っています。関数コンポーネントには状態がないため、参照を与えることはできないと読みました。
関数コンポーネントに参照を追加することはできません。ただし、ref を定義して、それらを DOM 要素またはクラス コンポーネントに添付することはできます。肝心なのは、関数コンポーネントにはインスタンスがないため、参照できないということです。
から取得: https://blog.logrocket.com/cleaning-up-the-dom-with-forwardref-in-react/
まだわかりません。
Tooltip
Ant Design のコンポーネント ( https://ant.design/components/tooltip/ )、Button
コンポーネント、およびカスタムコンポーネントを使用していCircleButton
ます。
次の JSX があるとします。
そして私の CircleButton コンポーネント。このように使用すると、警告が生成されます。
警告: 関数コンポーネントに参照を与えることはできません。この参照にアクセスしようとすると失敗します。React.forwardRef() を使用するつもりでしたか?
警告にもかかわらず、すべてが期待どおりに機能することに注意してください。
ただし、次のように編集すると正常に動作しますが、なぜですか?
div
コンポーネントには状態がありますか? 理解できません。forwardRef
何らかの魔法をかけて div 要素の状態を作成していますか?
ref
をコンポーネントに渡すと、Button
それでも警告が表示されるのはなぜですか?
antd
Button
を子として直接渡すと、機能します。しかし、これは、antd ボタンには状態があるため、参照を持つことができると思われるためです。