Reactjs 如何设置开关的值?

Reactjs 如何设置开关的值?,reactjs,material-ui,Reactjs,Material Ui,我有这个开关用于打开和关闭,我把它保存在firestore上。如果开关闭合,则我希望开关保持“闭合”。像这样: 目前,它所做的是,如果我转到另一个页面,它将切换回该页面,即使firestore中的数据已关闭: 以下是代码: const Home = () => { const [state, setState] = React.useState({ checkedC: true, }); const handleChange = async (event) =&g

我有这个开关用于打开和关闭,我把它保存在firestore上。如果开关闭合,则我希望开关保持“闭合”。像这样:

目前,它所做的是,如果我转到另一个页面,它将切换回该页面,即使firestore中的数据已关闭:

以下是代码:

const Home = () => {
  const [state, setState] = React.useState({
    checkedC: true,
  });

  const handleChange = async (event) => {
    setState({ ...state, [event.target.name]: event.target.checked });
    const value = event.target.checked;
    const status = value.toString();
    let setStatus = "";

    if (status === "true") {
      setStatus = "open";
    } else if (status.toString() === "false") {
      setStatus = "close";
    }

    console.log(setStatus);

    try {
      const res = await firestore
        .collection("status")
        .doc("status1")
        .set({
          status: setStatus,
        })
        .then(() => {
          console.log("successfu;ll");
        });
    } catch (err) {
      console.log(err);
    }
  };

  return (
    <div>
          <FormGroup>
            <Typography component="div" variant="h6">
              <Grid component="label" container alignItems="center" spacing={1}>
                <Grid item>Close</Grid>
                <Grid item>
                  <AntSwitch
                    checked={state.checkedC}
                    onChange={handleChange}
                    name="checkedC"
                  />
                </Grid>
                <Grid item>Open</Grid>
              </Grid>
            </Typography>
          </FormGroup>
    </div>
  );
};

export default Home;
const Home=()=>{
常量[状态,设置状态]=React.useState({
是的,
});
const handleChange=async(事件)=>{
setState({…state,[event.target.name]:event.target.checked});
常量值=event.target.checked;
const status=value.toString();
让setStatus=“”;
如果(状态==“真”){
setStatus=“打开”;
}else if(status.toString()=“false”){
setStatus=“关闭”;
}
控制台日志(setStatus);
试一试{
const res=等待firestore
.收款(“状态”)
.doc(“状态1”)
.设置({
状态:setStatus,
})
.然后(()=>{
console.log(“successfu;ll”);
});
}捕捉(错误){
控制台日志(err);
}
};
返回(
接近
打开
);
};
导出默认主页;

如何根据firestore的状态设置开关?假设开关关闭,则开关也将关闭,打开时也会关闭。

您可以根据fireStore中的值设置checked的初始状态

const [state, setState] = React.useState(() => //Read the value from the fireStore);