Select内的React Material-UI Chip的onDelete无法正常工作

时间:2019-12-29 19:50:42

标签: javascript material-ui

我在这里遵循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事件。 您认为我可以做什么以防止单击时打开菜单的行为?

非常感谢您!

1 个答案:

答案 0 :(得分:8)

Select组件拦截mousedown事件,因此添加

onMouseDown={(event) => {
  event.stopPropagation();
}}

转到您的Chip组件。