🚨 [costagram] react μ—μ„œ ν™˜κ²½λ³€μˆ˜(env) μ‚¬μš©ν•˜κΈ°

μ§•μ§•μ§•Β·2023λ…„ 1μ›” 10일

Project

λͺ©λ‘ 보기
1/8
post-thumbnail

🚨 λ¬Έμ œμƒν™©

κ²Œμ‹œκΈ€ READ κΈ°λŠ₯을 μœ„ν•΄ getμš”μ²­μ„ ν•˜λŠ” λ‘œμ§μ„ μ•„λž˜μ™€ 같이 μž‘μ„±ν–ˆλ‹€.

// http 톡신 둜직(get)

import axios from 'axios';

const getPosts = async () => {
  return axios
    .get(`/post`, {
      baseURL: process.env.REACT_PUBLIC_API_URL,
      headers: {
        withCredentials: true,
// 둜그인 κΈ°λŠ₯은 아직 κ΅¬ν˜„μ€‘μ΄λΌ μ„œλ²„λ‹΄λ‹Ή νŒ€μ›λΆ„μ΄ 토큰없이도 확인가λŠ₯ν•˜λ„λ‘ ν•΄μ£Όμ…¨λ‹€. 
        // Authorization: `Bearer ${localStorage.getItem('token')}`,  
        'Content-Type': `application/json`,
      },
    })
    .catch(err => console.log(err));
};

export default getPosts;
// react-query의 useQueryλ₯Ό μ΄μš©ν•˜λŠ” 둜직 
import { useQuery } from '@tanstack/react-query';
import getPosts from '../../apis/post/getPosts';

const useGetPosts = () => {
  return useQuery(['get/post'], () => getPosts(), {
    enabled: false,
  });
};

export default useGetPosts;
// μš”μ²­ 및 응닡에 λŒ€ν•œ dataλ₯Ό λ°›μ•„ μ‚¬μš©ν•  μ»΄ν¬λ„ŒνŠΈ 
import { useEffect } from 'react';
import useGetPosts from '../hooks/post/useGetPost';

const RenderPosts = () => {
  const { data, refetch } = useGetPosts();
  useEffect(() => {
    refetch();
  }, []);
  console.log(data); // refetch 싀행이 잘 λœλ‹€λ©΄ 응닡데이터가 μ°ν˜€μ•Όν•¨ 
  return <div>posts</div>;
};

export default RenderPosts;

μœ„μ™€κ°™μ΄ λ‘œμ§μ„ μž‘μ„±ν–ˆλ”λ‹ˆ 404였λ₯˜μ™€ ν•¨κ»˜ μš”μ²­μ΄ ν΄λΌμ΄μ–ΈνŠΈ μ„œλ²„ μ£Όμ†Œλ‘œ κ°€κ³ μžˆλŠ” 것을 ν™•μΈν–ˆλ‹€.

❓ λ¬Έμ œλΆ„μ„

.env ν™˜κ²½λ³€μˆ˜ 파일 λ‚΄ localhost:8080 으둜 api μ£Όμ†Œλ„ 잘 μž‘μ„±ν•΄λ‘” 것을 ν™•μΈν–ˆκ³  λ‘œμ§λ“€μ„ λ‹€μ‹œ μ‚΄νŽ΄λ΄λ„ λ¬Έμ œμžˆμ–΄λ³΄μ΄λŠ” 곳이 μ—†μ—ˆλ‹€.

μ™œ μš”μ²­apiκ°€ ν΄λΌμ΄μ–ΈνŠΈ μ„œλ²„λ‘œ λ˜μ–΄μžˆμ„κΉŒ? κ³ λ―Όν•˜λ˜ 쀑 ν™˜κ²½λ³€μˆ˜κ°€ 잘λͺ»λ˜μ—ˆμ„κΉŒν•˜λŠ” μ˜μ‹¬μ΄ 생겼고 확인을 μœ„ν•΄ λ³€μˆ˜ λŒ€μ‹  직접 apiλ₯Ό λ„£μ–΄λ³΄μ•˜λ‹€.

응닡을 잘 λ°›μ•„μ™”λ‹€!! κ·Έλ ‡λ‹€λ©΄ ν™˜κ²½λ³€μˆ˜μ˜ 문제!
api μ£Όμ†ŒλŠ” 잘 μž‘μ„±λ˜μ–΄ μžˆμœΌλ‹ˆ 이름이 λ¬Έμ œμ˜€κ³  ꡬ글링을 톡해 React ν™˜κ²½λ³€μˆ˜ λ³€μˆ˜λͺ… 쑰건을 μ•Œκ²Œλ˜μ—ˆλ‹€.

✨ ν•΄κ²°λ°©μ•ˆ

react ν™˜κ²½λ³€μˆ˜

reactμ—μ„œ ν™˜κ²½ λ³€μˆ˜ μ§€μ • μ‹œ, λ³€μˆ˜λͺ…μ˜ μ ‘λ‘μ‚¬λ‘œ REACT_APP_ 을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

λ³€μˆ˜λͺ… λ³€κ²½ ν›„ μ μš©ν•΄μ£Όλ‹ˆ 잘 μž‘λ™ν–ˆλ‹€!! πŸ‘πŸ‘πŸ‘

+ πŸ’‘ Next.js μ—μ„œλŠ” NEXT_PUBLIC_ 을 λΆ™μ—¬μ£Όμ–΄μ•Ό ν•œλ‹€.

profile
κΎΈμ€€νžˆ λ‚˜λ₯Ό λ°œμ „μ‹œν‚€μž 🫢

0개의 λŒ“κΈ€