728x90
반응형
기존에 있는 data에 data 추가를 했다.
(데이터 안에 id에 또 한번 추가 하려고 하니 번거로움이 있어서 일단은 빼고 구현...ㄷㄷ) 그리고 수정 기능이나 삭제기능은 기존에 있는 데이터를 필터만 해줄뿐이여서 여기서 마무리...
App.tsx 파일에 추가한 내용은 addData 함수와 Main component에 함수를 내려주는 것.
*기존에 있는 data를 list에 받아오기 때문에 list에 있는 기존 data에 concat 메소드를 이용해서 합친다.
Main.tsx
*App.tsx에서 받아오는 함수를 받아오기 위해 interface에 함수 type과 인자로 들어오는 type 설정
*handleRegister 함수에서 input 값을 들어온 것을 받아와서 가공한다.
*handleClick에서 input으로 받아온 데이터를 App.tsx component로 data를 올려준다.
*{nickname, phone}=form은 data를 받아오고 나서 초기화를 하기위해 선언(input 태그안에 valu={nickname})
import React, { useState } from "react"; import logo from "./image/logo.jpg"; import styled from "styled-components"; interface PropsData { handleSearch: (data: string) => void; handleData: (form: { nickname: string; phone: string }) => void; } function Main({ handleSearch, handleData }: PropsData) { const [form, get_form] = useState({ nickname: "", phone: "" }); const onChange = (event: React.ChangeEvent<HTMLInputElement>) => { handleSearch(event.target.value); }; const handleRegister = (event: React.ChangeEvent<HTMLInputElement>) => { const { name, value } = event.target; get_form({ ...form, [name]: value }); }; const { nickname, phone } = form; const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => { event.preventDefault(); handleData(form); get_form({ nickname: "", phone: "" }); }; return ( <Home> <Logoscreen> <img src={logo} alt="logo" /> </Logoscreen> <SearchBox> <input type="text" placeholder="검색란" onChange={onChange} /> </SearchBox> <Register> <input type="file" /> <div> 닉네임 :{" "} <input type="text" onChange={handleRegister} name="nickname" value={nickname} /> </div> <div> 폰번호 :{" "} <input type="text" onChange={handleRegister} name="phone" value={phone} /> </div> <div> 태그란 : <input type="text" onChange={handleRegister} name="tags" /> </div> </Register> <WriteButton> <button onClick={handleClick} type="submit"> 번호등록 </button> </WriteButton> </Home> ); } export default Main;
data를 입력해보면...
등록버튼을 누르면 data가 추가 되는것을 알 수 있다.
728x90
반응형
'Coding > typescript' 카테고리의 다른 글
React - Typescript + Hook (4) (0) | 2020.10.29 |
---|---|
React - TypeScript + Hook(3) (0) | 2020.10.28 |
React - TypeScript + Hook(2) (0) | 2020.10.27 |
React - Typescript + Hook(1) (0) | 2020.10.07 |