聞きたいこと
Material UIから提供されているSwitch
を使用して、stateの切り替えをしたいと思っています。
state
はSwitch
を使用しているChild
に 親コンポーネントの Parent
から渡しています(同時にstate変更用の関数も渡しています)
以下がコードになります。
- Child
import React from "react"; import Switch from "@material-ui/core/Switch"; export default function Child(props) { const { booleanList, setBoolean } = props; return ( <div> <Switch checked={booleanList[0].required} onChange={() => setBoolean(0)} name="checkedA" inputProps={{ "aria-label": "secondary checkbox" }} /> </div> ); }
- Parent
import React, { useState } from "react"; import Child from "./child"; export default function Parent() { const [booleanList, setBooleanList] = useState([ { required: true }, { required: false } ]); const setBoolean = (index) => { const newBooleanList = booleanList; newBooleanList[index].required = !booleanList[index].required; setBooleanList(newBooleanList); console.log(booleanList, "booleanList"); }; return <Child booleanList={booleanList} setBoolean={setBoolean} />; }
- index.js
import React from "react"; import ReactDOM from "react-dom"; import Demo from "./parent"; ReactDOM.render(<Demo />, document.querySelector("#root"));
ただ、state自体は更新されているのを確認できたのですが、Switch
の true/falseの切り替えがされません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。