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