// vite.config.js
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
optimizeDeps: {
include: ['axios']
},
server: {
proxy: {
'/atemos': {
target: 'http://127.0.0.1:8080',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/atemos/, '/atemos')
}
}
}
})
// src/api.ts
import axios from 'axios';
const API_URL = '/atemos';
export const fetchData = async (endpoint: string) => {
console.log("API_URL:", API_URL); // API_URL이 올바른지 확인
console.log("Endpoint:", endpoint); // endpoint가 올바른지 확인
try {
const response = await axios.get(`${API_URL}${endpoint}`);
console.log(response);
return response.data;
} catch (error) {
console.error('Error fetching data:', error);
throw error;
}
};
import {fetchData} from '../../api' // Axios를 이용한 API 호출 함수 가져오기
interface Company {
id: number;
name: string;
}
const SignUp: React.FC = () => {
const [selectedOption, setSelectedOption] = useState<Company[]>([]);
const [isOptionSelected, setIsOptionSelected] = useState<boolean>(false);
const changeTextColor = () => {
setIsOptionSelected(true);
};
useEffect(() => {
const getCompanyList = async () => {
try {
// API 호출 예시: /company/list 엔드포인트를 호출하여 데이터 가져오기
const data = await fetchData('/company/list');
setSelectedOption(data.companyList); // 데이터를 selectedOption에 설정
console.log('selectedOption :', selectedOption);
} catch (error) {
console.error('Error while logging in:', error);
// 에러 처리
}
};
getCompanyList(); // 함수 호출
}, []); // 빈 배열을 전달하여 컴포넌트가 마운트될 때 한 번만 호출하도록 설정
// 만약 특정 상태나 프롭이 변경될 때마다 호출하려면 해당 상태나 프롭을 배열에 추가하면 됩니다.
'Framework > React' 카테고리의 다른 글
[React] react-toastify custom (0) | 2024.09.04 |
---|---|
[React] React-calendar => React-big-calendar (0) | 2024.08.30 |
[React] 로딩 중 (0) | 2024.07.09 |
[React] 웹 스토리지 이용하기 (0) | 2024.07.09 |
[React] navigate 에러 (홈 화면으로 돌아가기) (0) | 2024.07.08 |