問題タブ [usecallback]

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 投票する
3 に答える
471 参照

react-native - React Native - ヘッダーから Formik を送信する方法

Formik と React Native は初めてです。現在、私の目標は、ナビゲーション ヘッダーを介してフォームを送信することです。私が見つけたすべての例は、画面ページ自体からフォームを送信することです。handleSubmitおよびonSubmitプロパティとsetParamsを適切に使用して値をナビゲーション ヘッダーに適切に渡す方法を理解する助けが必要です。

現在、フォームから useCallBack フックに値を送信しないことで立ち往生しています。

0 投票する
0 に答える
80 参照

javascript - useEffect と useCallback が複数の再レンダリングを引き起こす

私は自分の小さなプロジェクトに取り組んでいましたが、デプロイの直前に、使用していた API のポリシーが変更され、API 呼び出しが 1 秒に 1 回に制限されました。これにより、エラーが発生しました(エラー429:要求が多すぎます)。私の回避策(axios はヘッダー prop の後に再試行しないため、失敗した場合に再度呼び出しを行う fetch API を使用して何らかの再帰関数を作成することでした)。だから、もともと私は以下のコードのブロックで終わった:

明らかに、useEffect と useCallback の両方のいくつかの依存関係が実際の非同期状態の値であることを推測して、非常に多くの再レンダリングを引き起こしました。

fetchCall(useCallback なし)を useEffect にスローすることを決定し、私はこれで終わった:

上記のコードは、期待どおりに機能します。ただし、元の fetchCalls 関数 (useEffect の外側) をコメントアウトするのを忘れていたことに気付きませんでした。API 呼び出しに依存する 2 番目の API 呼び出しセットのみをコメントアウトしたためです。これをコメントアウトしようとすると、fetchCalls が定義されておらず、fetchCalls が不要な依存関係であるというエラーが発生するようになりました。

ただし、コードの 2 番目のブロックでは、useEffect の fetchCalls が、useEffect の fetchCalls 関数が行う API 呼び出しに依存する API 呼び出しの 2 番目のセットを運ぶものであることに注意してください。

なぜこのように機能するのかを知りたいだけです。なぜなら、すべてが奇妙に思えるからです。さらに、これに使用できるより受け入れられる回避策はありますか?