stateで upperCase、genderCase、groupCaseを管理しています。型は3つともboolean型です。
ON/Offを切り替えるスイッチがあり各スイッチを切り替えるとその各stateを変更する関数が呼ばれてtrueだったらfalseになりfalseだったらtruになります。
3つの関数はstateが違うだけで処理内容は同じです。
この処理を一つの関数にまとめたいのですがうまくいきません。
下記に自分が処理をまとめた関数を書いたのですがうまくいきませんでした。
わかる方がいましたら教えて欲しいです
// 3つの関数を一つにまとめてみた。 // stateを引数としてもらいそのstateを変更するようにしたい。 const CaseChange = (state: boolean) => { if (state) { setState({ ...state, state: false }); } else { setState({ ...state, state: true }); } };
interface IState { upperCase: boolean; genderCase: boolean; groupCase: boolean; } const [state, setState] = useState<IState>({ upperCase: false, genderCase: false, groupCase: false, }); const onUpperCaseChange = () => { if (state.upperCase) { setState({ ...state, upperCase: false }); } else { setState({ ...state, upperCase: true }); } }; const onGenderCaseChange = () => { if (state.genderCase) { setState({ ...state, genderCase: false }); } else { setState({ ...state, genderCase: true }); } }; const onGroupCaseChange = () => { if (state.groupCase) { setState({ ...state, groupCase: false }); } else { setState({ ...state, groupCase: true }); } };
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/27 08:01
2020/03/27 08:05
2020/03/27 08:06
2020/03/27 08:06
2020/03/27 08:08
2020/03/27 08:14
2020/03/27 08:18
2020/03/27 08:20
2020/03/27 08:25
2020/03/27 08:27
2020/03/27 08:57