인프런 커뮤니티 질문&답변
dispatch router질문입니다
작성
·
143
0
a쪽 컴포넌트는 const codeConfirm=useCallback(async()=>{
const codeDispatch=useCallback(async(resolve,reject)=>{
return await new Promise((resolve,reject)=>{
dispatch({
type:CODE_REQUEST,
data:code
});
resolve();
}
)
},[code])
if(code===undefined){
alert('코드를 입력해주세요');
return;
}
await codeDispatch().then(()=>{
if(codeInfo){
router.push('/b');
}
})
},[code])
이렇게 짜보았고 b쪽은
useEffect(()=>{
if(!codeInfo){
console.log(codeInfo);
alert('잘못 된 코드를 입력하였습니다');
router.push({pathname:'/a'});
}
},[codeInfo])
이런식으로 짜보았는데
b로 넘어갔다가 a로 다시넘어가는 현상이있습니다
답변 1
0
제로초(조현영)
지식공유자
네네 b로 넘어갈 때 아직 REQUEST 중이라 데이터가 없어서 a로 다시 넘어가는 것 같습니다. REQUEST할 때 loading이라는 state를 만들어서 b에서 아직 loading state가 true라면 a로 보내지 않는 쪽으로 하시면 되겠습니다.





