import React, { useState, useEffect } from 'react'; import { Button, Form, Container, Navbar, Alert } from 'react-bootstrap'; import { Link } from 'react-router-dom'; const INIT_USER = { username: '', nickname: '', email: '', password: '', } function SingUp() { const [validated, setValidated] = useState(false); const [user, setUser] = useState(INIT_USER) const [error, setError] = useState('') const [disabled, setDisabled] = useState(true) useEffect(() => { const isUser = Object.values(user).every(el => Boolean(el)) //Boolean : 참거짓 판별 //every : every뒤에 함수값이 return하는 값이 모두 참일때만 true출력 -> element가 하나도 빈 문자열이 존재하지 않을때 //empty string때만 false로 나옴. isUser ? setDisabled(false) : setDisabled(true) }, [user]) function handleChange(event) { const { name, value } = event.target // console.log(name, value) setUser({ ...user, [name]: value }) } async function handleSubmit(event) { event.preventDefault(); const form = event.currentTarget; if (form.checkValidity() === false) { event.preventDefault(); event.stopPropagation(); } setValidated(true); console.log(user) try { setError('') const response = await fetch('/api/users/signup', { //post, get같은게 주어지지 않으면 기본적으로 fetch에 get요청함 method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(user) }) const data = await response.json() console.log(data) // setUser(INIT_USER) } catch (error) { console.log(error) setError('오류가 발생했습니다!') } } return ( <> YDK Messenger

회원가입

이름 필수 정보입니다! 이름을 입력해주세요! 별명 필수 정보입니다! 별명을 입력해주세요! 이메일 필수 정보입니다! 이메일을 입력해주세요! 비밀번호 필수 정보입니다! 비밀번호를 입력해주세요! {/* */} {/* */} {error && {error} }
) } export default SingUp