const [watchValue、setWatchValue] = useState(''); const [otherValue1, setOtherValue1] = useState(''); const [otherValue2, setOtherValue2] = useState(''); 使用効果(() => { 何かを実行します(他の値1、他の値2); }, [watchValue, otherValue1, otherValue2]); ここで厄介な疑問が浮かびます。
この問題は、 const [watchValue、setWatchValue] = useState(''); const other1 = useRef(''); other2 は useRef() を使用します。 // 参照は変更されないため、依存関係配列に ref を追加する必要はありません useEffect(() => { 何かを実行します(other1.current、other2.current); }, [ウォッチ値]); この方法では、 これは 「react」から useState、useRef をインポートします。 // useState の応答性を維持しながら useRef の参照特性を使用する type StateRefObj<T> = { _状態: T; 値: T; }; デフォルト関数 useStateRef<T>( をエクスポートする 初期状態: T | (() => T) ): StateRefObj<T> { // 初期化値 const [init] = useState(() => { if (typeof initialState === "function") { 初期状態を () => T として返します (); } 初期状態を返します。 }); // コンポーネントのレンダリングをトリガーする状態を設定します。const [, setState] = useState(init); // 値を読み取ると、最新の値が取得されます // 値を設定すると、setStateがトリガーされ、コンポーネントがレンダリングされます const [ref] = useState<StateRefObj<T>>(() => { 戻る { _状態: 初期化、 値を設定する(v: T) { this._state = v; 状態を設定します。 }, 値を取得する() { this._state を返します。 }, }; }); // 返されるのは参照変数であり、コンポーネントのライフサイクル全体を通じて変更されません。 return ref; } したがって、次のように使用できます。 定数ウォッチ = useStateRef(''); const other1 = useStateRef(''); const other2 = useStateRef(''); // 値を次のように変更します: watch.value = "new"; 使用効果(() => { 何かを実行します(other1.値、other2.値); // 実際、これら 3 つの値は参照変数となり、コンポーネントのライフサイクル全体で変更されないため、依存関係配列を追加する必要はありません。 // ただし、React Hooks の eslint プラグインは、useRef を参照としてのみ認識できます。追加されていない場合は警告が表示されます。変数参照の安全性のため、引き続き追加されます。 }, [watch.value, other1, other2]); このように、 上記は、フック依存性のトラブルを解消するためのReactのヒントの詳細です。Reactフック依存性の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: 実稼働環境でのNginx高可用性ソリューションの実装プロセスの分析
>>: CentOS 7 での mysql 5.7 のインストール チュートリアル
Ethereum 上で DApps を開発したことがある場合は、フロントエンド JavaScript...
質問質問 1: トランザクションをコミットするときに REDO ログをフラッシュすることによって発生...
#文字列連結 concat(s1,s2); テーブル内の last_name と first_nam...
前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...
親ノードの親ノード、例えば、このような段落がありますHTML:コードをコピーコードは次のとおりです。...
<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...
序文プロジェクトのリリースでは、常に特定の状況に応じたパッケージ化が必要です。Angular CLI...
目次1. プロセス2. コアアーキテクチャ2.1 サーバー層の基本コンポーネントの紹介3. ステート...
この記事では、Vueの具体的なコードを共有して、シンプルなマーキー効果を実現しています。具体的な内容...
背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的...
まず、VMware 14のアクティベーションコードをお渡ししますFF31K-AHZD1-H8ETZ-...
CPU 権限の制限により、Linux ユーザー状態とカーネル状態間の通信は、プロセス間通信を使用した...
序文Vue アプリケーションなどの静的ページを開発する場合、クロスドメインになる可能性のあるインター...
1. まずパゴダを設置するインストール要件: Python バージョン: 2.6/2.7 (Pago...
1. インライン スタイル (<body></body> 内に配置されます)...