inputの入力時にstateに値を保存したくhandleInputSearchName、handleInputSearchAge,handleInputSearchCompanyという3つの関数を作りました。
保存されるstateが違うだけで処理が一緒なので関数をまとめてあげたいのですがどうしたらいいでしょうか?
わかる人いましたらご教授お願いしたいです。
import React, { FunctionComponent } from "react"; import styled from "styled-components"; interface ISearch { name: string; age: string; copmpany: string; } interface IState { message: string searchState: ISearch[]; } export const User: FunctionComponent = () => { const [state, setState] = useState<IState>({ message, searchState: [], }); const handleInputSearchName = (e:React.ChangeEvent<HTMLInputElement>) => { setState({ ...state, ...{ searchState: {name: e.target.value } } }); }; const handleInputSearchAge = (e:React.ChangeEvent<HTMLInputElement>) => { setState({ ...state, ...{ searchState: { age: e.target.value } } }); }; const handleInputSearchCompany = (e:React.ChangeEvent<HTMLInputElement>) => { setState({ ...state, ...{ searchState: { company: e.target.value } } }); }; return ( <div> <Input onClick={() => handleInputSarchName}>{name}</input> <Input onClick={() => handleInputSarchAge}>{age}</input> <Input onClick={() => handleInputSarchCompany}>{company}</input> </div> ); };
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/08/20 10:43
2020/08/20 12:36
2020/08/20 17:01 編集
退会済みユーザー
2020/08/21 06:15