-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
dispatch router질문입니다
20.05.01 00:23 작성 조회수 85
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로 다시넘어가는 현상이있습니다
답변을 작성해보세요.
0
조현영
지식공유자2020.05.01
네네 b로 넘어갈 때 아직 REQUEST 중이라 데이터가 없어서 a로 다시 넘어가는 것 같습니다. REQUEST할 때 loading이라는 state를 만들어서 b에서 아직 loading state가 true라면 a로 보내지 않는 쪽으로 하시면 되겠습니다.
답변 1