workspace의 userData를 출력하면 undefined출력 이후 값이 나오는 현상
375
작성한 질문수 3
import { Channels, Chats, Header, LogOutButton, MenuScroll, ProfileImg, ProfileModal, RightMenu, WorkspaceName, Workspaces, WorkspaceWrapper } from '@layouts/Workspace/styles'
import fetcher from '@utils/fetcher';
import React, { useCallback, useState } from 'react';
import useSWR from 'swr';
import axios from 'axios'
import gravatar from 'gravatar'
import { IUser } from '@typings/db';
import { Navigate, Route, Routes } from 'react-router';
import loadable from '@loadable/component';
import Menu from '@components/Menu';
const Channel = loadable(() => import('@pages/Ch'));
const DirectMessage = loadable(() => import('@pages/DirectMessage'));
const Workspace = () => {
const [showUserMenu, setShowUserMenu] = useState(false);
const { data: userData, error, mutate } = useSWR<any>('/api/users', fetcher, {
dedupingInterval: 2000,
});
console.log(">>" + userData)
const onLogout = useCallback(() => {
console.log(userData)
axios.post(
'/api/users/logout', null, { withCredentials: true, })
.then(() => {
mutate(false, false);
// revalidateUser(false);
})
.catch((err) => {
console.log(err)
})
}, [])
const onClickUserProfile = useCallback(() => {
setShowUserMenu((prev) => !prev);
}, [])
if (userData === false) {
return <Routes><Route path="/*" element={<Navigate replace to="/login" />} /></Routes>
}
return (
<div>
<Header>
<RightMenu>
<span onClick={onClickUserProfile}>
{/* {gravatar.url(userData.email, { s: '28px', d: 'retro' })} */}
<ProfileImg src="" alt="" />
{/* toggle */}
{showUserMenu && (<Menu style={{ right: 0, top: 38 }} show={showUserMenu} onCloseModal={onClickUserProfile}>
<ProfileModal>
<img src="" alt="" />
<div>
{/* <span id="profile-name">{userData.nickame}</span> */}
<span id="profile-name">name</span>
<span id="profile-active">Active</span>
</div>
</ProfileModal>
<LogOutButton onClick={onLogout}>로그아웃</LogOutButton>
</Menu>
)}
</span>
</RightMenu>
</Header>
<WorkspaceWrapper>
<Workspaces>te</Workspaces>
<Channels>
<WorkspaceName>Sleact</WorkspaceName>
<MenuScroll>Menu Scroll</MenuScroll>
</Channels>
<Chats>
<Routes>
<Route path='/workspace/channel' element={<Channel />} />
<Route path='/workspace/dm' element={<DirectMessage />} />
</Routes>
</Chats>
</WorkspaceWrapper>
{/* {children} */}
</div>
)
}
export default Workspace;workspace


import axios from 'axios';
const fetcher = (url: string) =>
axios
.get(url, {
withCredentials: true,
})
.then((response) => response.data);
export default fetcher;
fetcher.ts
Workspace에서 콘솔로 userData를 찍으면 undefined가 나온 뒤 값이 출력 되는데 먼저 뜨는 undefined때문에 에러가 나서 gravatar아이콘을 못 넣고 있습니다.
(창이 처음 뜰 때만 undefined가 1회 나온 뒤 값이 출력 되고 이후에는 계속 undefined없이 값만 정상 출력 됩니다.)
답변 2
0





이렇게 올리면 될까요?
기본 셋팅과 관련하여
0
93
1
초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법
0
98
2
focus 시에만 화면 업데이트 되는 이유 + 해결방법
0
150
2
useEffect 개수 관리
0
111
2
라이브러리 서치 방법
0
105
2
함수 정의 패턴
0
77
1
npm run dev 에러
0
152
3
npx webpack 후 에러
0
178
2
'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)
0
146
2
사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')
1
179
2
초기세팅중 packge.json 에러떠요
0
157
2
CORS - Access-Control-Allow-Origin 누락 문제
0
432
3
로그인 페이지 무한 새로고침 현상
0
598
2
Module not found: Error: Can't resolve './App' 에러
0
959
1
배포 방법
0
299
2
npm run dev 시 빌드가 매우 느려졌습니다
0
994
2
alias 경로 설정 오류
0
453
2
fetcher 함수의 data 값이 두번 찍히는 이유
0
278
1
제네릭 질문
0
219
2
ts-node 대신 tsx 사용여부
0
373
1
배포 관련 질문
0
247
1
[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.
0
386
2
[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.
0
336
1
users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.
0
247
2






여기에서 위에 users도 보여주셔야 하고, 헤더 부분의 request header의 cookie가 서로 다른지도 보여주셔야 할 것 같습니다.