reactjs - Material UI:功能组件中的复选框,我错过了什么吗?
问题描述
我找到了关于在基于类的 React 组件中使用 Material UI Checkbox 组件的 SO 文章,但我正在努力让它在功能组件中工作。这很奇怪,因为 Material UI 的文档使用了功能组件。
我试图尽可能地遵循他们的文档,但我似乎无法让 Checkbox 的 handleChange 触发。复选框没有改变,但据我所知,我的代码与此处文档中的第一个示例相同:https ://material-ui.com/components/checkboxes/
这是我的组件:
import React from "react";
import { makeStyles, useTheme } from "@material-ui/core/styles";
import Card from "@material-ui/core/Card";
import Checkbox from "@material-ui/core/Checkbox";
import Avatar from "@material-ui/core/Avatar";
import CardHeader from "@material-ui/core/CardHeader";
const useStyles = makeStyles(theme => ({
card: {
display: "flex",
flexDirection: "column"
},
header: {
display: "flex",
flexDirection: "row"
},
content: {
flexDirection: "row",
flex: "2"
},
cover: {
display: "flex"
},
avatar: {
width: "100px"
},
large: {
width: theme.spacing(7),
height: theme.spacing(7)
}
}));
const SelectSpeciesCard = ({ speciesImg, speciesGeneralName }) => {
const [checked, setChecked] = React.useState(true);
const handleChange = event => {
// <-- Can't get this to work
console.log("Checkbox checked");
setChecked(event.target.checked);
};
const classes = useStyles();
const theme = useTheme();
return (
<Card className={classes.card}>
<CardHeader
className={classes.header}
avatar={<Avatar src={speciesImg} className={classes.large} />}
action={
<Checkbox
checked={checked}
value="secondary"
color="primary"
inputProps={{ "aria-label": "secondary checkbox" }}
onChange={handleChange}
/>
}
title={speciesGeneralName}
/>
</Card>
);
};
export default SelectSpeciesCard;
解决方案
推荐阅读
- excel - 切换到工作表上的列表或组合框
- c# - System.Net.WebException:'错误:ConnectFailure(连接被拒绝)'
- javascript - RegExp 如何在此示例中替换双引号上的单引号
- css - 仅适用于平板电脑和手机的 CSS 规则,而不适用于台式机?
- laravel - 在流明中每分钟执行一次工作
- audio - 什么 FFMPEG 命令将以特定时间戳覆盖 2 个音频文件?
- templates - 维基媒体模板中的空间
- python - 如何在启动 Chrome 并尝试使用 Selenium 使用 ChromeDriver 访问网页时解决“获取默认适配器失败”错误
- geoserver - 重投影:wms级联还是客户端js?
- python - NiFi Parse PDF 使用 Python Tika 错误:ExecuteStreamCommand