Changeイベントがはしった時に各CaseのChange関数が呼ばれるのですが
値を変更するstateが違うだけで処理内容は全く同じです。なので
onChangeという関数を作り、stateを引数で受け取り、その引数のstateを変えてあげるよう
な関数を作り、使いまわそうとしたのですが
Object literal may only specify known properties, and 't' does not exist in type 'SetStateAction<STate>'.tsというエラーが出てうまくいきません。
わかる人がいましたら教えて欲しいです
enum Type { On, Off, } interface STate { Case1: Type; Case2: Type; Case3: Type; } const Index:FC<Props> = () => { const [ state, setState ] = useState<STate> ({ Case1: ChangeType.Off Case2: CahngeType.Off Case3: CahngeType.Off Case4: CahngeType.Off }); // const onCase1Cahnge = () => { // state.Case1 === Type.On ? // setState({ ...state, Case1: Type.On }) // : setState({ ...state, Case1: Type.Off }) // } // const onCase2Cahnge = () => { // state.Case2 === Type.On ? // setState({ ...state, Case2: Type.On }) // : setState({ ...state, Case2: Type.Off }) // } // const onCase3ahnge = () => { // state.Case3 === Type.On ? // setState({ ...state, Case3: Type.On }) // : setState({ ...state, Case3: Type.Off }) // } // const onCase4ahnge = () => { // state.Case4 === Type.On ? // setState({ ...state, Case4: Type.On }) // : setState({ ...state, Case4: Type.Off }) // } const onChange = (t: STate) => { t === Type.On ? setState({ ...state.t: Type.On }) : setState({ ...state.t: Type.Off }) } }
回答1件
あなたの回答
tips
プレビュー