ユーザーデータを更新したいです。既存のユーザー データは正常に取得されましたが、更新されませんでした。上記のエラーが表示されます。 以下の行から等号を削除すると、エラーは削除されますが、ユーザー データはまだ更新されません。
const presentUser = users.userList.filter(f => f.id == id);
データ構造が何であるかはわかりませんが、提供されたコードから説明し、問題が何であるかを推測することができます。
受け取ったエラーは、existingUser の 0 番目の要素が存在しないことを意味します。 existingUser はフィルターから取得され、フィルターは配列を返すため、フィルター内の条件がどの要素でも満たされていないと想定できます。
existingUser
=== を == に変更すると機能するということは、f.id と id が同じ型ではないことが推測できます。おそらく、一方は文字列で、もう一方は整数です。
===
==
== を使用すると、実際に元の問題が解決されます。ただし、=== を使用したい場合は、値のタイプを変更してみてください。たとえば、id が文字列で f.id が整数の場合、次のように条件を記述できます:
Google 検索すると違いがわかります。
次の問題は、上記のエラーを修正した後、データが更新されないことです。これは、コンポーネントで使用しているデザイン パターンが原因です。 useState は初期値のみを取り、setState を使用して更新しない限り、コンポーネントの存続期間中は変更されません。
setState
useSelector とdispatch を使用しているため、redux を使用していると思います。この場合、useState は必要ないと思います。 existingUser[0] から分解された name と email を使用するだけで、これらは 更新コードを送信するたびに表示されます コード>。
redux
useState
existingUser[0]
name
email
更新コードを送信するたびに表示されます
データ構造が何であるかはわかりませんが、提供されたコードから説明し、問題が何であるかを推測することができます。
受け取ったエラーは、
existingUser
の 0 番目の要素が存在しないことを意味します。existingUser
はフィルターから取得され、フィルターは配列を返すため、フィルター内の条件がどの要素でも満たされていないと想定できます。===
を==
に変更すると機能するということは、f.id と id が同じ型ではないことが推測できます。おそらく、一方は文字列で、もう一方は整数です。== を使用すると、実際に元の問題が解決されます。ただし、=== を使用したい場合は、値のタイプを変更してみてください。たとえば、id が文字列で f.id が整数の場合、次のように条件を記述できます:
リーリーGoogle 検索すると違いがわかります。
次の問題は、上記のエラーを修正した後、データが更新されないことです。これは、コンポーネントで使用しているデザイン パターンが原因です。 useState は初期値のみを取り、
setState
を使用して更新しない限り、コンポーネントの存続期間中は変更されません。useSelector とdispatch を使用しているため、
redux
を使用していると思います。この場合、useState
は必要ないと思います。existingUser[0]
から分解されたname
とemail
を使用するだけで、これらは更新コードを送信するたびに表示されます
コード>。