【发布时间】:2023-03-22 06:50:02
【问题描述】:
我有下面的 JSX,它是 Box 内的一个弹出窗口。 isActive 是 Popover 采用的一个道具,它使 Popover 保持打开状态。现在在点击事件上,我正在尝试更新 isActive 的值以使其保持打开状态,但它没有发生。如何纠正?
const [open, setOpen] = React.useState(false);
<Box variant="light">
<Popover
id="myPopover"
isActive={open}
items={[
{
children: <Type weight="semibold">Popover Item</Type>
},
{
children: <Type weight="semibold">Popover Item</Type>
},
{
children: <Type weight="semibold">Popover Item</Type>,
disabled: true
},
{
children: <Type weight="semibold">Click Me</Type>,
onClick: event => {
console.log('Clicked', event);
setOpen(true);
}
}
]}
>
<div>My Popover</div>
</Popover>
</Box>;
【问题讨论】:
-
isActive={open}?你也应该有onClose事件来将状态设置为false。 -
@DennisVash 我该怎么做?
-
什么意思?使用状态而不是硬编码
isActive -
@DennisVash 我的错,我已经更新了帖子中的代码,我正在从状态设置
isActive,但 Popover 正在关闭。 -
可以分享一下Popover的实现吗?了解什么 onClick 事件附加到
标签: reactjs react-hooks setstate