首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应材料-UI芯片的onDelete内部选择不工作

反应材料-UI芯片的onDelete内部选择不工作
EN

Stack Overflow用户
提问于 2019-12-29 19:50:42
回答 2查看 8.4K关注 0票数 17

我在这里学习了芯片示例,以便将芯片呈现为选择的renderValue:

https://material-ui.com/components/selects/

但是,当我将onDelete添加到芯片中时,为了在一次单击中删除芯片,我可以看到关闭的图标,但没有调用(因为选择的菜单显示)。

代码语言:javascript
复制
<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事件。你认为我能做些什么来防止菜单在点击时打开的行为?

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-13 14:06:01

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

代码语言:javascript
复制
onMouseDown={(event) => {
  event.stopPropagation();
}}

到您的Chip组件。

票数 32
EN

Stack Overflow用户

发布于 2022-03-24 20:21:27

是的,它可以工作,停止在芯片组件中的传播。

代码语言:javascript
复制
onMouseDown={(event) => {
 event.stopPropagation();
}}

对于继续,选择中的焦点可以创建引用selectRef = React.createRef();并调用selectRef.current.focus();,它将焦点重置为组件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59522767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档