問題タブ [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.

0 投票する
1 に答える
1708 参照

reactjs - ReactJS: useEffect でのフェッチ時に最大更新深度を超えたエラー

React 16.8 では、useReducer、useContext フックを使用してプロジェクトを実装し、Redux と同様のグローバル状態管理システムを作成しました。

ビューで、useEffect でデータをフェッチしようとすると、Maximum update depth エラーが発生します。

Facebook React - Hooks-FAQのすべての例を既に試しましたが、問題を解決できません。

私のpackage.jsonはそのようなものです:

これが私のコード例です:

ここにView.jsがあります

この問題を本当に解決したい場合は、保存サイクルの他のファイルを見てください。

useView.js のフックは次のとおりです。

ディスパッチする viewReducer.js は次のとおりです。

これは、アプリ内のすべてのコンポーネントを提供し、状態を渡すための StoreProvider です。

これは、さまざまなビューの多くのレデューサーを複製するためのレデューサー index.js です。

多くのファイルについて申し訳ありませんが、状況を説明する他の方法はありません。Redux を使用していた人は、このアプローチを理解できます。ページの最初のレンダリングでデータを取得しようとするまで、状態 => アクション => ディスパッチ システムに問題はありません (この例では、View と呼びます)。

古典的なlet didCancel = falseアプローチは機能しませんでした。状態を新しく取得したデータと比較すると、問題は解決しました。しかし、読み込みを追加すると、useReducer がトリガーされ、ページが再レンダリングされるため、無限ループが発生します。

UseRef と clearInterval はそれを妨げず、次のエラーが発生します。

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

reactjs - フックを使用して親の状態が更新されても、子コンポーネントが再レンダリングされない

Appフック付きの機能コンポーネントがあり、子コンポーネントが状態の変化、特に への呼び出しで再レンダリングされるようにしよuseEffectうとしています。ただし、変更時にコンポーネントが再レンダリングされず、その理由がわかりません。(注: 両方の非同期関数と期待どおりに動作し、正しいデータを取得しています。)<Redirect>setUserInSystemuserInSystemuserInSystemgetUserInfogetUserByWorkEmail