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 のインストール チュートリアル
エフェクト表示組み込みのブートインターフェースがあまりにも醜いので、テーマをダウンロードして美しくし...
この記事では、Centos7.3でのmysql5.7.18のインストールと初期パスワードの変更につい...
外国のウェブサイトを開くと文字化けした文字が表示されることが多く、また、英語以外の外国のウェブサイト...
MySQLのダウンロードとインストール(バージョン8.0.20)のチュートリアルは参考までに、具体的...
目次1. 組み込みオブジェクト2. 数学オブジェクト1. Mathオブジェクトの使用2. 指定された...
参考までに、mysql 5.7.20 / 5.7.21 をダウンロード、インストール、構成します。具...
1. nginx仮想ホストの設定仮想ホストを使用すると、実行する Web サイトごとに個別の Ngi...
1. 背景プロジェクトの業務が進むにつれて、データベース テーブルの数がどんどん大きくなり、ハードデ...
この記事の例では、ドロップダウンリスト選択ボックスを実装するためのJavaScriptの具体的なコー...
基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...
1.メニューバーにスタートと入力し、スタートアップアプリケーションをクリックして入力します。 2. ...
ユーザー組織には、ドメインに参加している 2 台の Windows Server 2008 R2 フ...
多くの場合、 Web デザインが完成した後でデザイナーの無知が露呈し、批判されることがあります。彼ら...
目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...
Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...