【发布时间】:2020-02-12 19:09:03
【问题描述】:
我的目标是通过在 React with Typescript 应用程序中单击 Material UI Icon 来控制子组件。 所以我想知道如何从父组件使用 useState() 或 useRef() 访问子组件。谢谢你。
//Parent.tsx as a parent component
...
import ChildComponent from '/FormDialog';
export default function ParentComponent() {
const classes = useStyles();
return (
...
<ChildCareIcon /> // a Material UI Icon
...
)
//Child.tsx as a child component
...
export default function ChildComponent() {
const [open, setOpen] = React.useState(false);
const handleClickOpen = () => {
setOpen(true);
};
const handleClose = () => {
setOpen(false);
};
return (
<div>
<Button variant="outlined" color="primary" onClick={handleClickOpen}>
Open form dialog
</Button>
<Dialog
open={open}
onClose={handleClose}
aria-labelledby="form-dialog-title"
>
...
);
【问题讨论】:
-
如果你想让元素被父元素控制,不就是把
open和setOpen作为props而不是state吗?然后它成为父母的状态并传递给孩子。
标签: reactjs typescript