我在这里遵循Chips示例,以便将芯片呈现为Select的renderValue:
https://material-ui.com/components/selects/
但是,当我在芯片上添加onDelete时,为了一键删除芯片,我可以看到关闭图标,但是删除事件未被调用(因为选择菜单显示)。
<Select
multiple
value={selectedProducts}
onChange={handleProductsSearchChange}
renderValue={selected => (
<div className={classes.chips}>
{selected.map(value => (
<Chip key={value} label={find(FAKE_PRODUCTS, {id: value}).name}
onDelete={() => handleDeleteSearchProduct(value)}
className={classes.chip} />
))}
</div>)}
MenuProps={{ PaperProps: {
style: {
maxHeight: 48 * 4.5 + 8,
width: 250,
}
}
}}
>
{menuItems}
</Select>
当我将芯片放在select之外时,将调用delete事件。 您认为我可以做什么以防止单击时打开菜单的行为?
非常感谢您!
答案 0 :(得分:8)
Select
组件拦截mousedown
事件,因此添加
onMouseDown={(event) => {
event.stopPropagation();
}}
转到您的Chip
组件。