如何在Semantic UI React中实现多选过滤器下拉列表

时间:2018-03-23 04:54:47

标签: javascript reactjs semantic-ui

我想实现一个下拉组件,在展开时显示所选的选项。

这是我目前所拥有的,但它标记了我不想要的选定选项。我希望它们看起来类似于单个选择下拉列表,它们只是阴影/突出显示,但可以选择多个。

<Dropdown
     text="Filter" 
     icon="filter"
     className="icon"
     fluid multiple selection labeled button
     options={filterOptions}
/>

1 个答案:

答案 0 :(得分:1)

正如您所注意到的,Semantic(目前)不支持关于多选的大量自定义。所以,你有两个基本选择。首先,您可以使用子组件自己实现下拉列表的详细信息(包括所有被触发的事件),并且仅依赖Semantic进行样式设置。如果你选择这条路线,你也可以自己编写。

或者,您可以使用一些Semantic的内置函数来破解解决方案。

为此,您需要更改两个主要行为:

1st - 你需要隐藏标签。您可以通过修改下拉列表中的renderLabel方法来执行此操作。从该方法返回null将阻止呈现标记。

第二 - 您需要取消隐藏下拉菜单中的所选选项。没有内置的方法来执行此操作,但您可以通过为所选的每个选项插入新的重复选项来伪造它。确保附加onClick以允许取消选择对象。

以下是一个有效的例子:https://stackblitz.com/edit/so-49442592

有很多怪癖,所以随时提问!