inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

1-7. 회원가입 state와 custom hook

e.preventDefault();

2107

강동협

작성한 질문수 1

0

조금 사소한 질문입니다..

e.preventDefault();

type error: not a function 출력돼서 e.preventDefault; 이렇게하니까 되던데 상관없는건가요?

react javascript

답변 4

2

제로초(조현영)

onFinish에서는 e가 없는 것 같습니다. 그냥 e를 빼시면 됩니다. e.preventDefault()도 지우세요.

1

제로초(조현영)

아뇨 문제가 있습니다. 코드를 보여주세요.

0

강동협

아.. 감사합니다!!

0

강동협

import React, { useStateuseCallback } from 'react';
import { FormInputCheckboxButton } from 'antd';

const Signup = () => {
  const [passwordChecksetPasswordCheck] = useState('');
  const [passwordErrorsetPasswordError] = useState(false);
  const [termsetTerm] = useState(false);
  const [termErrorsetTermError] = useState(false);

  const useInput = (initValue = null=> {
    const [valuesetter] = useState(initValue);
    const handler = useCallback((e=> {
      setter(e.target.value);
    }, []);
    return [valuehandler];
  };

  const [idonChangeId] = useInput('');
  const [nickonChangeNick] = useInput('');
  const [passwordonChangePassword] = useInput('');

  const onSubmit = useCallback(
    (e=> {
      e.preventDefault();
      if (password !== passwordCheck) {
        return setPasswordError(true);
      }
      if (!term) {
        return setTermError(true);
      }
      console.log({
        id,
        nick,
        password,
        passwordCheck,
        term,
      });
    },
    [passwordpasswordCheckterm]
  );

  const onChangePasswordCheck = useCallback(
    (e=> {
      setPasswordError(e.target.value !== password);
      setPasswordCheck(e.target.value);
    },
    [password]
  );
  const onChangeTerm = useCallback((e=> {
    setTermError(false);
    setTerm(e.target.checked);
  }, []);

  return (
    <>
      <Form onFinish={onSubmit} style={padding: 10 }}>
        <div>
          <label htmlFor='user-id'>아이디</label>
          <br />
          <Input name='user-id' value={id} required onChange={onChangeId} />
        </div>
        <div>
          <label htmlFor='user-nick'>닉네임</label>
          <br />
          <Input
            name='user-nick'
            value={nick}
            required
            onChange={onChangeNick}
          />
        </div>
        <div>
          <label htmlFor='user-password'>비밀번호</label>
          <br />
          <Input
            name='user-password'
            value={password}
            type='password'
            required
            onChange={onChangePassword}
          />
        </div>
        <div>
          <label htmlFor='user-password-check'>비밀번호확인</label>
          <br />
          <Input
            name='user-password-check'
            value={passwordCheck}
            type='password'
            required
            onChange={onChangePasswordCheck}
          />
        </div>
        {passwordError && (
          <div style={color: 'red' }}>비밀번호가 일치하지 않습니다.</div>
        )}
        <div>
          <Checkbox name='user-term' checked={term} onChange={onChangeTerm}>
            약관동의
          </Checkbox>
          {termError && (
            <div style={color: 'red' }}>약관에 동의하셔야 합니다.</div>
          )}
        </div>
        <div style={marginTop: 10 }}>
          <Button type='primary' htmlType='submit'>
            가입하기
          </Button>
        </div>
      </Form>
    </>
  );
};

export default Signup;

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

482

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

447

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

433

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

975

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1