작성
·
321
1
선생님 안녕하세요,
AppInner.tsx 코드에서 interceptor 부분 중 질문있습니다.
useEffect 에 의존값이 없으면 최초 렌더링시에만 호출되는 걸로 알고 있는데요.
dispatch는 정적객체라 안적어도 상관없다고? 하셔서 없는것과 마찬가지로 생각했습니다. 그럼 interceptor가 포함된 useEffect 코드는 최초 렌더링만 된다고 이해가 되는데요.
그럼 여기서 궁금한건 요 두가지 경우예요.
1, 2번중 어떤걸로 이해해야 할까요? 아니면 둘다 틀린건지 궁금합니다.
// 앱 실행 시 토큰 있으면 로그인하는 코드
useEffect(() => {
const getTokenAndRefresh = async () => {
try {
const token = await EncryptedStorage.getItem('refreshToken');
if (!token) {
return;
}
const response = await axios.post(
`${Config.API_URL}/refreshToken`,
{},
{
headers: {
authorization: `Bearer ${token}`,
},
},
);
dispatch(
userSlice.actions.setUser({
name: response.data.data.name,
email: response.data.data.email,
accessToken: response.data.data.accessToken,
}),
);
} catch (error) {
console.error(error);
if ((error as AxiosError).response?.data.code === 'expired') {
Alert.alert('알림', '다시 로그인 해주세요.');
}
}
};
getTokenAndRefresh();
}, [dispatch]);
감사합니다~!