inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] React로 NodeBird SNS 만들기

회원가입 페이지 만들기(커스텀 훅)

약관동의

440

원피스를 찾아서

작성한 질문수 77

0

안녕하세요 제로초님

프론트부분을 다시 한번 보면서 복습중인데요

실제 사이트에서는 회원가입 시 약관동의를 읽고 약관동의를 

체크하는 방식인데 그런 약관동의에 대한 글들은 따로 모듈 

같은게 있나요?  아님 제가 따로 작성을 해야되는건가요?

좋은자료 있으면 알려주세염^^

감사합니다.

redux express react nodejs Next.js

답변 5

0

제로초(조현영)

return setPasswordError(true)를 하셔야 다음 줄이 실행 안 됩니다.

0

원피스를 찾아서

어떤부분에서 비밀번호가 다르면 submit이 안되는지 궁금합니다.


지금현재는 패스워드가 달라도 제출은 되는상태입니다.


코드첨부합니다.

const Signup = () => {
  const [email, onChangeEmail] = useInput('');
  const [nickname, onChangeNickname] = useInput('');
  const [password, onChangePassword] = useInput('');

  const [passwordCheck, setPasswordCheck] = useState('');
  const [passwordError, setPasswordError] = useState(false);
  const [term, setTerm] = useState('');
  const [termError, setTermError] = useState('');

  const onChangePasswordCheck = useCallback((e) => {
    setPasswordCheck(e.target.value);
    setPasswordError(password !== e.target.value);
  },[password, passwordCheck]);

  const onChangeTerm = useCallback((e) => {
    setTerm(e.target.checked);
    setTermError(false);
  },[]);

  const onSubmit = () => {
    console.log('=============',password, passwordCheck, '=============')
    if(password !== passwordCheck) {
      setPasswordError(true);
    }
    if(!term) {
      setTermError(true);
    }
    console.log(nickname, email, password);
  }

  return (
    <>
      <AppLayout>
        <Form onFinish={onSubmit}>
          <label htmlFor="user-email">email</label>
          <br />
          <Input name="user-email" required value={email} onChange={onChangeEmail}></Input>

          <label htmlFor="user-nickname">닉네임</label>
          <br />
          <Input name="user-nickname" required value={nickname} onChange={onChangeNickname}></Input>

          <label htmlFor="user-password">비밀번호</label>
          <br />
          <Input name="user-password" required value={password} type="password" onChange={onChangePassword}></Input>

          <label htmlFor="user-passwordCheck">비밀번호체크</label>
          <br />
          <Input name="user-passwordCheck" required type="password" value={passwordCheck} onChange={onChangePasswordCheck}></Input>
          {passwordError && <ErrorMessage>비밀번호가 일치하지 않습니다.</ErrorMessage>}

          <div>
            <Checkbox name="user-term" checked={term} onChange={onChangeTerm} >약관에 동의합니다.</Checkbox>
            {termError && <ErrorMessage>약관에 동의하셔야합니다.</ErrorMessage>}
          </div>
          <div>
            <Button type="primary" htmlType="submit">가입하기</Button>
          </div>
        </Form>
      </AppLayout>
      
    </>

0

제로초(조현영)

password랑 passwordCheck를 먼저 콘솔찍어보세요.

0

원피스를 찾아서

혹시 추가질문으로 fornt2 부분에서 sign.js에서 비밀번호가 일치하지 않는 상태에서 가입하기를 눌러도 콘솔이 찍히던데 

어떤부분을 빼먹은걸까요?

혹시 코드가 필요하면 올리겠습니다.

0

제로초(조현영)

모듈은 따로 쓰지는 않고 직접 작성을 많이 합니다. 다만 변경된 약관들도 모두 저장하고 있어야 해서 따로 파일로 저장해놓거나 그렇습니다. 그리고 데이터베이스상에서도 그 사람이 언제 약관동의를 했는지 시간을 기록하는 컬럼이 있어야 나중에 법적 문제가 안 생깁니다.

넥스트 버젼 질문

0

77

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

175

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

372

1

sudo certbot --nginx 에러

0

1274

2

Minified React error 콘솔에러 (hydrate)

0

470

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

327

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

381

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

287

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

237

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1