노력이 좋아서
<step88>'react_typescript_interface, keyof, Generic'
zoaseo
2022. 7. 26. 12:51
1)
typescript 적용
npx create-react-app ts-react-tutorial --template typescript

src/
Counter.tsx
import React, { useState } from 'react';
const Counter = () => {
const [ count, setCount ] = useState<number>(0);
const onIncrease = () => setCount(count+1);
const onDecrease = () => setCount(count-1);
return (
<div>
<h1>{count}</h1>
<div>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
</div>
);
};
export default Counter;
MyForm.tsx
import React, { useState } from 'react';
const MyForm = () => {
const [ form, setForm ] = useState({
name: "",
description: ""
});
const { name, description } = form;
const onChange = (e:any) => {
const { name, value } = e.target;
setForm({
...form,
[name]: value
})
}
const handleSubmit = (e:any) => {
e.preventDefault();
setForm({
name: "",
description: ""
})
}
return (
<form onSubmit={handleSubmit}>
<input name='name' value={name} onChange={onChange}/>
<input name='description' value={description} onChange={onChange}/>
<button type="submit">등록</button>
</form>
);
};
export default MyForm;