사용자 데이터를 업데이트하고 싶습니다. 기존 사용자 데이터를 성공적으로 가져왔지만 업데이트되지 않았습니다. 위와 같은 오류가 표시됩니다. 아래 줄에서 등호를 제거하면 오류는 제거되지만 사용자 데이터는 여전히 업데이트되지 않습니다.
const existingUser = users.userList.filter(f => f.id == id);
P粉9795861592024-01-02 11:26:30
귀하의 데이터 구조가 무엇인지는 잘 모르겠지만 제공된 코드를 통해 문제가 무엇인지 설명하고 추측할 수 있습니다.
표시되는 오류는 existingUser
的第 0 个元素不存在。由于 existingUser
가 필터에서 발생하고 필터가 배열을 반환한다는 의미이므로 필터 내부 조건이 어떤 요소에도 충족되지 않는다고 가정할 수 있습니다.
추가===
更改为 ==
하면 작동할 것이라고 말하면 f.id와 id가 같은 유형이 아니라는 것을 추측할 수 있습니다. 어쩌면 하나는 문자열이고 다른 하나는 정수일 수도 있습니다.
==를 사용하면 실제로 원래 문제가 해결됩니다. 그러나 ===를 사용하려면 값 유형을 변경해 볼 수 있습니다. 예를 들어 id가 문자열이고 f.id가 정수인 경우 다음과 같이 조건을 작성할 수 있습니다.
으아악Google 검색을 통해 차이점을 확인할 수 있습니다.
다음 문제는 위의 오류를 수정한 후에도 데이터가 업데이트되지 않는다는 것입니다. 이는 구성 요소에서 사용하는 디자인 패턴 때문입니다. useState는 초기 값만 취하고 setState
를 사용하여 업데이트하지 않는 한 구성 요소의 전체 수명 동안 변경되지 않습니다.
useSelector와 디스패치를 사용하고 있으므로 redux
。在这种情况下,我认为不需要 useState
。您只需使用从 existingUser[0]
中解构的名称
和电子邮件
,只要您发送更新
를 사용하고 코드를 렌더링한다고 가정합니다.