본문 바로가기

A.개발관련자료

[0][react]useEffect 함수실행, navigate , console.log is not working

useEffect내에서 console.log가 찍히지 않을때 =>

1.비동기함수가 더 빠르게 작동하지 않는지 체크해볼것 ! !

2.return 하여 렌더링되는 페이지 안에 출력되야하는 결과물이 있는지 확인할것, (있다면 해당 결과물을 조건식으로 감쌀것 )

 ///해결된 실행문
 const [userInPage, setUserInPage] = useState(false)
 useEffect(() => {
    //1.user === "nouser"일때 navigate()으로 코드 짰는데, 비동기 함수가 더 빠르게 작동,
    //따라서 if 문의 순서를 바꾸었더니 작동함.
    if(user !== "nouser"){
      setUserInPage(true)
      dispatch(fetchAllUsers());
      dispatch(fetchMainInfo());
    }else{
      navigate("/admin/signin")
    }
  }, [dispatch,navigate]);
    return (
  [...]
  //2.페이지 리턴값중에 문제가 되는 user를 조건식으로 감싸줌 => user가 없으면 페이지 내 user가 출력되지
  //않으므로 잘 실행이 됌
  	{userInPage &&
  	<div>{user}</div>}
  [...]
  )
  
  ///이전 오류 실행문
    useEffect(() => {
    if(user === "nouser"){
      console.log(user) // => user가 나오지 않음.. ㅠㅠ
      navigate("/admin/signin")
    }else{
      dispatch(fetchAllUsers());
      dispatch(fetchMainInfo());
    }
  }, [dispatch,navigate]);
  
  return (
  [...]
  	<div>{user}</div>
  [...]
  )