【发布时间】:2022-01-04 20:29:58
【问题描述】:
我是 React 新手,通过编码学习,这里我有组件 A,它具有带有 menuItems 的选择元素(所有材料 ui),当用户单击选择元素并从下拉列表中选择时,就在用户选择整个组件之后应该去显示:无,这可能吗?我的意思是用户应该不能再在页面上看到选择元素了
英语不是我的母语,所以可能会有错误。
建议/帮助表示赞赏。
组件 A:
const A: React.FC<AProps> = (props) => {
const handleChange = (e: React.ChangeEvent<{ value: unknown }>) => {
const site = e.target.value as string;
dispatch(changeActiveSite(site));
if (site) {
dispatch(getAnalysers(site));
} else {
dispatch(clearSiteData(site));
}
};
const sites = [
{
ident: "",
name: "None",
},
].concat(sitess);
return (
<React.Fragment>
<FormControl className={classes.formControl}>
<InputLabel id="site-select-input-label">site</InputLabel>
<Select
id="site-select"
value={currentSiteId}
labelId="site-select-input-label"
onChange={(e) => handleChange(e)}
>
{sites.map((site) => {
return (
<MenuItem key={site.ident} value={site.ident}>
{site.name}
</MenuItem>
);
})}
</Select>
</FormControl>
</React.Fragment>
);
};
该组件位于组件 B 中,如下所示: <div > <A site={site} /> </div>
【问题讨论】:
-
让您的子组件的
render() {...}有一个if(this.state.hidden) { return ''; }行。然后只需设置状态,child.setState({'hidden':true})。 -
@HoldOffHunger 你能用我的代码给出答案吗?所以我可以接受
-
嘿嘿,当然,已发布,如果之后有任何问题,请告诉我。
标签: javascript css reactjs material-ui material-design