material-ui - 如何防止 Material-ui Popover 关闭
问题描述
当“_addFilter” 或 “_removeFilter”
函数正在运行时,如何防止“popover”关闭 。
_addFilter = > 将对象添加到“过滤器”列表
_removeFilter => 从 'filterlist' 对象中删除一个对象
当“状态”改变时,“弹出框”会关闭。怎么屏蔽。
弹出框组件
const [anchorEl, setAnchorEl] = useState(null);
const buttonRef = React.useRef();
const { filters } = useSelector((state) => state.TableReducer);
const _handleClick = (event) => {
setAnchorEl(event.currentTarget);
};
const _handleClose = () => {
setAnchorEl(null);
};
const _addFilter = () => {
dispatcher({ type: TABLE_FILTER_ADD });
};
const _removeFilter = () => {
dispatcher({ type: TABLE_FILTER_REMOVE });
};
const open = Boolean(anchorEl);
const id = open ? 'simple-popover' : undefined;
return (
<Popover
id={id}
open={open}
anchorEl={anchorEl}
onClose={_handleClose}
elevation={10}
PaperProps={{ className: classes.popoverPaperProps, }}
anchorOrigin={{
vertical: 'bottom',
horizontal: 'center',
}}
transformOrigin={{
vertical: 'top',
horizontal: 'left',
}}
>
{
filters?.map((item) => (
<Item
data={item}
key={item.key}
/>
))
}
<div className={classes.action}>
<div>
<Button
color="primary"
className={classes.addButton}
startIcon={<AddIcon />}
onClick={_addFilter}
>
Add
</Button>
<Button
color="primary"
className={classes.removeButton}
startIcon={<ClearIcon />}
onClick={_removeFilter}
>
Remove
</Button>
</div>
</div>
</Popover>
)
版本:“@material-ui/core”:“^4.11.4”,“react”:“17.0.2”,
谢谢你的帮助
解决方案
推荐阅读
- google-apps-script - 获取具有特定值的单元格集合 Google 表格
- swift - Where do a UITableView's section footers get their width?
- r - How can I remove NAs when both columns are missing only?
- python - how to unnest a pandas column that its a string
- javascript - Permission denied for file upload in PHP
- vba - MS Access VBA - Runtime Error 438 when setting ControlSource-Property in Form
- reactjs - redux-saga/loadable-component first fetch 不等待,但接下来的都是 yes
- jquery - 可调整大小的面板,带有表格和可调整大小的列
- javascript - How would you automatically retry a failed ajax call 3 times (synchronously)?
- c# - TestCaseData attribute does not match when TestCaseData has function call