강사님 질문 네개있어요!!
305
작성한 질문수 142
import axios from 'axios';
import Link from 'next/link';
import { useRouter } from 'next/router';
import React, { FormEvent, useState } from 'react';
import InputGroup from '../components/InputGrout';
// 1. 타입 명시안해줘도 괜찮은걸까요?
// InputGrout.tsx에는 const InputGroup: React.FC<InputGroupProps> .. 이런식으로 명시해주셨는데
// 여기에는 타입 들어갈 만한게 없어서 작성을안해주신걸까요?
// 있는게 불편하지않다 싶으면 const Register:React.FC = ()=> {} 이정도로만 해줘도 괜찮을까요?
const Register = () => {
// email,username,password의 useState도 타입명시를 해줘도되고 안해줘도될까요?
const [email, setEmail] = useState('');
const [userName, setUserName] = useState('');
const [password, setPassword] = useState('');
const [errors, setErrors] = useState<any>({});
// 3. const 대신 let을 사용해주신 이유가 궁금합니다!
let router = useRouter();
// 4. 코드가 몇줄 안되서 handleSubmit함수에서 비동기통신을해주고 사용해주시는데 이부분을 그냥 모듈(?)처럼 따로 빼서 사용해도될까요?
// 강사님은 어떤 방식을 추천하시는지 궁금합니다.
const handleSubmit = async (e: FormEvent) => {
e.preventDefault();
try {
// 4번질문의 코드부분
const res = await axios.post('/auth/register', {
email,
userName,
password,
});
console.log('res', res);
router.push('/login');
} catch (error: any) {
console.log('error', error);
setErrors(error.response.data || {});
}
};
return (
<div className='bg-white'>
<div className='flex flex-col items-center justify-center h-screen p-6'>
<div className='w-10/12 mx-auto md:w-96'>
<h1 className='mb-2 text-lg font-medium'>회원가입</h1>
<form onSubmit={handleSubmit}>
<InputGroup
placeholder='Email'
value={email}
setValue={setEmail}
error={errors.email}
/>
<InputGroup
placeholder='Username'
value={userName}
setValue={setUserName}
error={errors.email}
/>
<InputGroup
placeholder='Password'
value={password}
setValue={setPassword}
error={errors.email}
/>
<button
className='w-full py-2 mb-1 text-xs font-bold text-white uppercase
bg-gray-400 border-gray-400 rounded'
>
회원 가입
</button>
</form>
<small>
이미 가입하셨나요?
<Link href='/login' legacyBehavior>
<a className='ml-1 text-blue-500 uppercase'>로그인</a>
</Link>
</small>
</div>
</div>
</div>
);
};
export default Register;
강사님 질문이 네개있는데 코드랑 같이 질문드리고싶어서 주석으로 질문 드렸습니다!
타입스크립트 기초지식이 없어서 좀 버벅이네요!ㅠㅠ
항상 친절하게 설명해주셔서 정말 감사합니다..
답변 1
1
안녕하세요!
1,2번 둘 다 옵션사항이기 때문에 해줘도 되고 안 해줘도 됩니다.
그래서 이해하신 부분이 다 맞습니다!
3 번은 반가우면 반갑다고 해님이 말씀해주신 것처럼 const가 더 옳은 방법이겠네요!!
4 번은 반복적인 부분이 있다면 모듈화 해서 사용해주시면 됩니다 ~
근데 어떻게 모듈화 하실 건지 약간 긴가민가해서 뭐가 낫다고 하긴 어렵지만 만약 계속 공통적인 부분이 사용된다면 모듈화해 주시는 건 좋은 방법입니다!
감사합니다.
toJson을 추가하면 [sub].tsx에서 sub를 받아오지 못합니다.
0
122
2
쿠키 저장이 되지 않습니다.
0
226
1
AxiosError {message: 'Request failed with status code 401/500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE', (2)
0
581
1
AxiosError {message: 'Request failed with status code 401/500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE',
0
651
1
overload 에러
0
170
1
docker compose up 오류
0
210
1
부록) remark 강의 중 parmas 오류
0
140
1
3000번은 잘 들어가지는데 80번은 안됩니다.
1
296
0
커뮤니티를 올리고 난 후 404 page
0
209
1
tailwind css 문제인지, className 에 적용한 css가 적용되지 않아요.
0
1043
2
tsx 수정 시 마다 빌드 후 서버 시작 해야하나요?
0
656
2
useState 쳤을 때 자동완성 되는 단축키 무엇인가요? extention 인가요?
0
805
2
리액트 서버 npm run dev 와 npm run build 후 npm start 의 차이
0
4615
2
data 폴더가 생성되지 않아요.
0
527
1
docker-compose up 오류
0
814
1
회원 가입 페이지 기능 생성(3) 중 에러
0
380
2
Entity에 toJSON 코드 입력 후 404 에러
0
252
1
context에서 useEffect 선언 부분 질문 있어요.
0
297
1
src 폴더구조
0
511
2
서버 실행 시 에러 관련하여 답변받고 1차 조치했는데 여전하여서 질문 남깁니다
0
298
1
엔티티 모두 작성 후 서버 실행 시 에러가 발생합니다
0
313
1
회원가입 누르면 404에러가 뜹니다 ;-;
1
424
1
nextjs버젼에 대해서 질문드립니다.
0
373
1
<npm run dev>시 -61 에러가 나타납니다!
0
359
1





