찾다

 >  Q&A  >  본문

"'기존 사용자'의 '이름' 속성이 정의되지 않았기 때문에 구조 해제할 수 없습니다. Update.js:13"은 무엇을 의미합니까?

사용자 데이터를 업데이트하고 싶습니다. 기존 사용자 데이터를 성공적으로 가져왔지만 업데이트되지 않았습니다. 위와 같은 오류가 표시됩니다. 아래 줄에서 등호를 제거하면 오류는 제거되지만 사용자 데이터는 여전히 업데이트되지 않습니다.

const existingUser = users.userList.filter(f => f.id == id);

으아악


P粉925239921P粉925239921334일 전485

모든 응답(1)나는 대답할 것이다

  • P粉979586159

    P粉9795861592024-01-02 11:26:30

    귀하의 데이터 구조가 무엇인지는 잘 모르겠지만 제공된 코드를 통해 문제가 무엇인지 설명하고 추측할 수 있습니다.

    표시되는 오류는 existingUser 的第 0 个元素不存在。由于 existingUser가 필터에서 발생하고 필터가 배열을 반환한다는 의미이므로 필터 내부 조건이 어떤 요소에도 충족되지 않는다고 가정할 수 있습니다.

    추가=== 更改为 == 하면 작동할 것이라고 말하면 f.id와 id가 같은 유형이 아니라는 것을 추측할 수 있습니다. 어쩌면 하나는 문자열이고 다른 하나는 정수일 수도 있습니다.

    ==를 사용하면 실제로 원래 문제가 해결됩니다. 그러나 ===를 사용하려면 값 유형을 변경해 볼 수 있습니다. 예를 들어 id가 문자열이고 f.id가 정수인 경우 다음과 같이 조건을 작성할 수 있습니다.

    으아악

    Google 검색을 통해 차이점을 확인할 수 있습니다.

    다음 문제는 위의 오류를 수정한 후에도 데이터가 업데이트되지 않는다는 것입니다. 이는 구성 요소에서 사용하는 디자인 패턴 때문입니다. useState는 초기 값만 취하고 setState를 사용하여 업데이트하지 않는 한 구성 요소의 전체 수명 동안 변경되지 않습니다.

    useSelector와 디스패치를 ​​사용하고 있으므로 redux。在这种情况下,我认为不需要 useState。您只需使用从 existingUser[0] 中解构的名称电子邮件,只要您发送更新를 사용하고 코드를 렌더링한다고 가정합니다.

    회신하다
    0
  • 취소회신하다