[ Web ]/React.js
[React.js] Kossie Coder - 17강. InputField 컴포넌트로 빼내기 & Fragment
HoYoung Kim
2021. 12. 29. 15:11
1. InputField.js : MovieForm.js의 input 태그 컴포넌트화
import React from "react";
const InputField = ({
type,
value,
placeholder,
onChange,
errorMessage
}) => {
return (
// <React.Fragment>
// <></> 태그는 React.Fragment를 줄인 태그이다.
// react의 component는 반드시 하나의 태그로 감싸져야 하는데, div 태그로 감쌀 경우 css 충돌 등의 문제가 생길 수 있으므로 아무 효과가 없는 React.Fragment 태그로 감싼다.
<>
<input
style={{borderColor: 'red'}}
type={type}
value={value}
placeholder={placeholder}
onChange={onChange}
/><br/>
<div style={{color: 'red'}}>{errorMessage}</div>
</>
// </React.Fragment>
);
};
2. MovieForm.js : InputField.js 적용
...
import InputField from "./InputField";
...
return (
<form onSubmit={onSubmit}>
<InputField
type="text"
value={movieTitle}
placeholder="영화제목"
onChange={e => setMovieTitle(e.target.value)}
errorMessage={titleError}
/>
<InputField
type="number"
value={movieYear}
placeholder="개봉년도"
onChange={e => setMovieYear(e.target.value)}
errorMessage={yearError}
/>
<button type="submit">영화추가</button>
</form>
);
...