次のコードスニペットがあります:
fetch が 2 回呼び出されますが、理由はわかりません。 解決策はありますか?
共有コードから、コンポーネントが 2 回インストールされているように見えるため、それをインストールしているコンポーネントを確認することをお勧めします。
ただし、応答が複数回取得されないように保存することができます。 リーリー
tags はコンポーネントの外部で宣言されているため、グローバル変数のように動作し、ステートフルになります。コンポーネント が に設定されるたびに、タグがロードされているかどうかを確認してからキャッシュされたデータを使用するか、それをロードしてその後項目を更新します。
はコンポーネントの外部で宣言されているため、グローバル変数のように動作し、ステートフルになります。コンポーネント
に設定されるたびに、タグがロードされているかどうかを確認してからキャッシュされたデータを使用するか、それをロードしてその後項目を更新します。
理想的には、そのようなロジックは別のファイルに存在し、より適切に抽象化される必要があります。たとえば、複数の API がある場合、それらの API はこの機能を共有できます。 const {ステータス、データ、エラー} = useApiCall('/tags')。また、例のタグはすでに ref であるため、items を使用する代わりに tags を直接使用することもできます。 API 呼び出しのステータスを追跡することで解決できる競合状態が存在する場合もあります。
。また、例のタグはすでに
であるため、
を使用する代わりに
を直接使用することもできます。 API 呼び出しのステータスを追跡することで解決できる競合状態が存在する場合もあります。
共有コードから、コンポーネントが 2 回インストールされているように見えるため、それをインストールしているコンポーネントを確認することをお勧めします。
ただし、応答が複数回取得されないように保存することができます。 リーリー
tags
この例に関する注意事項...はコンポーネントの外部で宣言されているため、グローバル変数のように動作し、ステートフルになります。コンポーネント
がに設定されるたびに、タグがロードされているかどうかを確認してからキャッシュされたデータを使用するか、それをロードしてその後項目を更新します。
理想的には、そのようなロジックは別のファイルに存在し、より適切に抽象化される必要があります。たとえば、複数の API がある場合、それらの API はこの機能を共有できます。
const {ステータス、データ、エラー} = useApiCall('/tags')
。また、例のタグはすでに
refであるため、
itemsを使用する代わりに
tagsを直接使用することもできます。 API 呼び出しのステータスを追跡することで解決できる競合状態が存在する場合もあります。