[React] 구성 요소로 만든 기본 입력
16315 단어 React
입력 구성 요소 만들기!
입력해야 하기 때문에 구성 요소 내부에 입력한 데이터를 저장해야 합니다.
이런 느낌인가요?import React from "react";
export const IncorrectTextBox = (props: Props) => {
const [value, setValue] = React.useState("");
return (
<label style={{ display: "block" }}>
{`${props.label} `}
<input
value={value}
onChange={event => setValue(event.target.value)} />
</label>
);
}
사용할 때 이런 느낌이에요.const App = () => {
return (
<div style={{ maxWidth: 400, margin: "auto", padding:50 }}>
<IncorrectTextBox label="Input your fisrt name." />
<IncorrectTextBox label="Input your last name." />
</div>
)
}
잘 입력한 것 같아요!완벽해!
입력한 영역을 확인하시겠습니까?
입력을 확인하기 위해 전체 이름을 표시하는 요소를 준비하세요!const App = () => {
return (
<div style={{ maxWidth: 400, margin: "auto", padding:50 }}>
<IncorrectTextBox label="Input your first name." />
<IncorrectTextBox label="Input your last name." />
<div>{`${firstName} ${lastName}`}</div>
</div>
)
}
그 다음에 firstName
와lastName
만 찾으면 표시됩니다!IncorrectTextBox
어떻게 구성 요소에서 해당하는 입력 값을 얻습니까?
어떻게 하면 좋을까요?
어떻게 하면 좋을까...?
못 가져.
관리 대상 구성 요소
사용자가 입력한 구성 요소의 기본은
import React from "react";
export const IncorrectTextBox = (props: Props) => {
const [value, setValue] = React.useState("");
return (
<label style={{ display: "block" }}>
{`${props.label} `}
<input
value={value}
onChange={event => setValue(event.target.value)} />
</label>
);
}
const App = () => {
return (
<div style={{ maxWidth: 400, margin: "auto", padding:50 }}>
<IncorrectTextBox label="Input your fisrt name." />
<IncorrectTextBox label="Input your last name." />
</div>
)
}
const App = () => {
return (
<div style={{ maxWidth: 400, margin: "auto", padding:50 }}>
<IncorrectTextBox label="Input your first name." />
<IncorrectTextBox label="Input your last name." />
<div>{`${firstName} ${lastName}`}</div>
</div>
)
}
사용자가 입력한 구성 요소의 기본은
props
입력값 수락props
에서 변경 사항을 수락할 때 실행되는 함수예를 들어, 자유 텍스트 입력의 경우 다음과 같습니다.
interface RevolutionaryTextBoxProps {
value: string,
onChange: (value: string) => void,
}
export const RevolutionaryTextBox = (props: RevolutionaryTextBoxProps) => {
return (
<input
type="text"
value={props.value}
onChange={event => props.onChange(event.target.value)} />
);
}
TypeScript이므로 정의됨interface
.props
에서 string
형 매개 변수value
를 수락합니다.그리고 사용자가 입력할 때마다 입력된 새 값을 전달하는 함수를 받고 실제로는 사용자가 입력할 때마다 실행합니다.그런 다음 입력 어셈블리를 사용하는 측 관리
state
를 사용합니다.const App = () => {
const [firstName, setFirstName] = React.useState("");
const [lastName, setLastName] = React.useState("");
return (
<div style={{ maxWidth: 750, margin: "20px auto" }}>
<label>
FirstName
<RevolutionaryTextBox
value={firstName}
onChange={setFirstName} />
</label>
<label>
LastName
<RevolutionaryTextBox
value={lastName}
onChange={setLastName} />
</label>
<div>{`${firstName} ${lastName}`}</div>
</div>
)
}
("Revolutionary"배경색으로 만들었어요.웃음)
string
형 입력을 받아들이는 간단한 구성 요소의 예를 제시했는데 이것은 number
형의 수치 입력, boolean
형의 팔꿈치 스위치, 슬라이더, DatePicker에서 기본적으로 같다.props
입력할 데이터 형식의 값을 수신하고 입력한 후 새 값을 매개 변수에 전달하고 실행하는 함수입니다.이렇게 하면 이러한 표를 실현할 수 있다. 예를 들어 다른 입력 구성 요소의 값에 따라 필요한 입력 구성 요소도 변화할 수 있다.
const App = () => {
const [firstName, setFirstName] = React.useState("");
const [lastName, setLastName] = React.useState("");
return (
<div className="container" style={{ maxWidth: 750, margin: "20px auto" }}>
<label>
FirstName
<RevolutionalyTextBox
value={firstName}
onChange={value => {
setFirstName(value);
setLastName(value); // setLastName()も同時に呼び出す
}} />
</label>
<label>
LastName
<RevolutionalyTextBox
value={lastName}
onChange={setLastName} />
<div>{`${firstName} ${lastName}`}</div>
</label>
</div>
)
}
끝내다
나는 9개월의 무직 기간을 끝내고 4월부터 인터넷 기업에 취직했다🎊
저는 꿈에 그리던 React 및 TypeScript를 업무적으로 처리할 수 있습니다.🎉
새로운 React를 시작하는 사람도 있을 것 같습니다.
그런 사람이 읽게 해주면 좋겠다.
Reference
이 문제에 관하여([React] 구성 요소로 만든 기본 입력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/stin_dev/items/fc1dfb2458e9564549b7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([React] 구성 요소로 만든 기본 입력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/stin_dev/items/fc1dfb2458e9564549b7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)