問題タブ [use-effect]
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 - 反応フック (useEffect) 無限ループの明確化
この質問は、私のこの前の質問に関連しています。2 つのカスタム フックを作成しました。1 つ目はuseFetchAccounts
、ユーザー アカウントに関するデータを取得するジョブで、次のようになります。
このフックについて特別なことはなく、アカウントの ID を取得するだけです。
useFetchBalancesWithIDs(account_ids, accounts_loaded)
これで、アカウントが読み込まれている場合に、前のステップから ID を取得し、これらのアカウントの残高を取得するための別のフックが作成されました。次のようになります。
accounts_loaded
が false であることがわかるように、フェッチは実行されません。一緒に私は次のようにそれらを使用しています:
残念ながら、これにより無限ループが発生します。何が機能するかは、これを次のように変更するuseFetchBalancesWithIDs
ことです:
その中でID抽出を実行します。私はこのように使用しています:
これは問題なく動作します。useFetchBalanceWithIDs
そのため、この問題は App コンポーネント内からの ID の抽出に関連しているように思われaccount_ids
ます。誰かがこの動作を説明するのを手伝ってくれますか? 使用しても問題ありませんがuseFetchBalanceWithAccounts
、機能しない理由を理解したいと思いuseFetchBalanceWithIDs
ます。ありがとうございました!
reactjs - useEffectの多くの呼び出しに - React
useEffect
が変更された場合にのみメソッドでコードを実行したいのですがproductType
、ページが読み込まれるとすぐに、console.log が 6 ~ 7 回以上実行されていることがわかります。これは望ましくありません。
これが私のコードの要約です:
useEffect
アイデアは、変更時にこれでコードを実行するproductType
ことです。ドロップダウンで次のように変更しています。
console.logs
ですから、このビュー/テンプレートをロードすると、コンソールで 6-7-8のようになったのはなぜだろうnull
..