찾다

 >  Q&A  >  본문

props를 다른 구성 요소로 재정의해야 할 때까지 useEffect가 데이터를 "가져오지" 못하는 이유는 무엇입니까?

서버에서 "사용자 정보"를 "가져오"려고 합니다.

API GET URL: /users/${memberId} userID는 숫자형 memberId입니다. (예 4)

내 질문은 다음과 같습니다..

" "에서 "userIcon"을 클릭하면 페이지를 연결하고 올바른 사용자 정보를 로드해야 합니다

로컬호스트 페이지를 직접 확인하려고 해도 안나오네요. 하지만 " userId={userData.memberId} "를 제거하면 페이지가 표시되고 다시 작성됩니다. "userId={userData.memberId}" 하고 저장하면 페이지가 정상입니다.

으아악

"userId={userData.memberId}"의 링크는 UserPage 경로에 사용됩니다. console.log(userData)입니다

여기에 이미지 설명을 입력하세요

으아악

문제는 UserIcon을 클릭하면 작동하지 않고 오류가 발생한다는 것입니다. 오류를 알려주세요 <<无法读取未定义的属性(读取'memberId')>>

그럼..왜 내 코드가 작동하지 않나요? : 사용자 아이콘 클릭 -> uerl /users/${memberId}를 사용하여 UserPage로 이동합니다. LoginHeader에서 memberId 소품을 제거할 때까지 useEffect 'GET'이 작동하지 않는 이유는 무엇입니까? ? ?

P粉985686557P粉985686557311일 전676

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

  • P粉465675962

    P粉4656759622024-01-18 07:56:06

    왜냐하면userData未定义. 초기화 위치/방법을 표시하지 않지만 이와 같은 것이 있습니까? :

    으아아아

    이렇게 하면 未定义。因此,当组件首次呈现时,您无法从 userData 读取属性,因为它是未定义로 초기화됩니다. 나중에 값을 가질 수도 있지만 그때쯤이면 코드에서 이미 오류가 발생한 것입니다.

    한 가지 옵션은 빈 개체로 초기화하는 것입니다.

    으아아아

    이 경우에는 userData.memberId 不会抛出错误,但会向该组件传递一个 undefined값입니다.

    또 다른 옵션은 userData 값이

    이 될 때까지 구성 요소를 렌더링하지 않는 것입니다. 으아아아

    어떤 옵션을 선호하는지는 전적으로 귀하에게 달려 있습니다. 하지만 가장 중요한 것은 undefined 에서 속성을 읽을 수 없다는 것입니다.

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