currentUser.uid null...?

라형선·2023년 2월 21일
0

https://prohannah.tistory.com/139

  React.useEffect(() => {
    authService.onAuthStateChanged((user) => {
      console.log('user:', user);
      if (user) {
        const getPostingUID = getPostings.UID;
        const MyUid: any = authService.currentUser.uid;
        const MyProfile = authService.currentUser.photoURL;
        const MyNickname = authService.currentUser.displayName;
        const userinfo: any = {
          getPostingUID,
          MyUid,
          MyProfile,
          MyNickname,
        };
        setChattinguse(userinfo);
        console.log('chattinguser:', chattinguser);
      } else {
      }
    });
  }, []);

위 링크대로 하던 중 무한루프에 빠졌다.
계속해서 루프를 돌더니 갑자기 된다.

  React.useEffect(() => {
    authService.onAuthStateChanged((user) => {
      console.log(user);
      if (user) {
        const getPostingUID = getPostings.UID;
        const MyUid: any = authService.currentUser.uid;
        const MyProfile = authService.currentUser.photoURL;
        const MyNickname = authService.currentUser.displayName;
        const userinfo: any = {
          getPostingUID,
          MyUid,
          MyProfile,
          MyNickname,
        };
        setChattinguse(userinfo);
        console.log('userinfo', userinfo);
      } else {
      }
    });
  }, [go]);

무한루프에 빠진코드 계속 무한루프에 빠져서 디펜던시를 추가했던건데 디펜던시를 빼니까 루프에 빠지지않는다.
라고 생각했는데 다시 무한루프가돈다

무한루프에 빠지는 글이있는걸까..?

React.useEffect(() => {
    authService.onAuthStateChanged((user) => {
      console.log(user);
      if (user) {
        const getPostingUID = getPostings.UID;
        const MyUid: any = authService.currentUser.uid;
        const MyProfile = authService.currentUser.photoURL;
        const MyNickname = authService.currentUser.displayName;
        const userinfo: any = {
          getPostingUID,
          MyUid,
          MyProfile,
          MyNickname,
        };
        setChattinguse(userinfo);
        console.log('userinfo', userinfo);
      } else {
      }
    });
  });
모든 상태값 변동시마다 호출하고 싶을때
컴포넌트안의 모든 상태 훅(State Hook) 값이 변경될때마다 호출하고싶다면 아래와 같이 작성하면 된다.

  useEffect(() => {
    console.log('always call.')
  }); 
  컴포넌트내 상태 훅에 변동발생시마다 호출

https://ddochea.tistory.com/93

무한루프 원인 : useEffect 함수 내의 setState 때문

해결방법

종속성 배열로 빈 배열 사용하기

profile
형선

0개의 댓글