我目前有以下代码,我在 react-grid-layout div 中显示一张卡片以使其可调整大小:
const Dashboard = () => {
const [showCard, setShowCard] = React.useState(true)
const closeCard = () => setShowCard(false)
return (
<div style = {{padding: "2%"}} >
<ResponsiveReactGridLayout
className = "layout"
cols = {{ lg: 4, md: 2, sm: 1, xs: 1, xxs: 1 }}
breakpoints={{ lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 }}
rowHeight = {150}
layouts={layouts}
>
{ showCard ? <div key="a" data-grid={{x: 0, y: 0, w: 1, h: 4, minW: 1, minH: 4, maxW: 4, maxH: 4}}>
<PortfolioAssets onClose={closeCard} />
</div> : null }
</ResponsiveReactGridLayout>
</div>
)
}
onClose 在封装组件内部调用,PortfolioAssets onClick 一个按钮:
<IconButton
onClick = {props.onClose}
>
<CloseIcon />
</IconButton>
我只希望在单击 X 按钮(IconButton)时关闭此 div,并且页面的其余部分保持不变:
{ showCard ? <div key="a" data-grid={{x: 0, y: 0, w: 1, h: 4, minW: 1, minH: 4, maxW: 4, maxH: 4}}>
<PortfolioAssets onClose={closeCard} />
</div> : null }
问题是,每当我单击 IconButton 时,它都会关闭整个页面上的每个组件和 div。页面上的每个 div 和卡片都会关闭,并且只显示背景颜色。即使使用构造函数,我也尝试了几种不同的方法,但它仍然不起作用。我不确定还能尝试什么。
任何帮助是极大的赞赏。