React Hooks_part2.3_useInput part Two

Eugenius1st·2022년 1월 5일
0

React Hooks

목록 보기
6/29

useInput2

useInput을 조금 더 확장 시켜서 좀 더 섹시하게 만들어보자
이걸 NPM에 등록해서 사람들이 사용할 수 있도록

initialVlaue 대신에 유효성을 검증하는 기능을 포함시켜보자


여기에서


validator 을 추가해준다

validator function 은 사람들이 특정 문자를 쓸 수 없도록 해보자

onchage에 value 를 setting 해주자

import "./styles.css";
import React, { useState } from "react";

const useInput = (initialValue, validator) => {
  const onChange = (event) => {
    const {
      target: { value }
    } = event;
    let willUpdate = true;
    if (typeof validator === "function") {
      willUpdate = validator(value);
      //유효성 검사를 실행한다
    }

    if (willUpdate) {
      setValue(value);
    }
  };
  const [value, setValue] = useState(initialValue);
  return { value, onChange };
};
export default function App() {
  const maxLen = (value) => value.length < 10;
  const name = useInput("Mr.", maxLen);
  //매번 validator은 바뀔거고 타입이 function 이라면 wilUpate에 validator의 결과를 업로드 할 것이다.
  //이 케이스에서 validator은 maxLen 이고 결과는 true 혹은 false가 될 것이다. true면 업데이트 가능하다
  return (
    <div className="App">
      <h1>Hello</h1>
      <input placeholder="Name" {...name} />
    </div>
  );
}

글자의 길이가 10을 넘는지 검증하는 validator을 만들었다

조건은 맘대로 넣어줄 수 있다.

그러면 @는 입력되지 않는다.

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글