Problem
api를 따로 분리해주려는데 컴포넌트 파일이 아니다보니 useSessionStore로 불러오는 user_id 값이 api파일에서는 연결되지않는다.
Solve
useSearchParams를 사용해서 필요한 페이지에서 매개변수를 만들어 넘겨주자
// UserProfile.tsx
import { useSearchParams } from 'next/navigation';
import { getUserProfile } from '@/app/api/getUserProfileApi';
// ...
export default function UserProfile() {
const searchParams = useSearchParams(); // useSearchParams 사용
const userIdFromQueryParam = searchParams.get('user_id'); // 쿼리 파라미터에서 user_id 추출
// useQuery를 사용하여 사용자 프로필 가져오기
const { data: userProfile } = useQuery(['userProfile', userIdFromQueryParam], async () => {
return await getUserProfile(userIdFromQueryParam); // getUserProfile 함수 사용
});
// ...
}
//getUserProfileApi.ts
import { supabase } from '../../../supabase/supabaseConfig';
export async function getUserProfile(userId) {
const response = await supabase.from('users').select('*').eq('user_id', userId);
return response.data?.[0];
}
'What I Learnd > TIL' 카테고리의 다른 글
TIL - 데이터 로딩 속도(의존성 순서 확인) (0) | 2023.08.30 |
---|---|
TIL - supabase 외래키로 연결된 데이터 불러오기 (0) | 2023.08.25 |
TIL - map 함수는 배열에서만 사용 가능하다! (0) | 2023.08.25 |
TIL - Next.js Image Component (0) | 2023.08.24 |
TIL - 특정파일 커밋 히스토리 삭제하기 [git] (0) | 2023.08.23 |