我想使用
Semantic UI React Dropdown
的默认键盘导航(箭头移动到上一个/下一个项目,输入以选择等)和自定义下拉样式。
一切正常,直到我添加
Dropdown.Menu
和 Dropdown.Item
组件只是为了做 className={style.item}
等。之后所有默认机制,如搜索、键盘导航、当前选定的项目停止工作。我手动重新添加了所有内容,但无法让键盘导航再次工作。
以前 - 工作,但没有造型
<Dropdown
ref={field}
fluid
search
selection
selectOnNavigation={false}
name="listId"
options={selectedBoard.lists.map((list) => ({
text: list.name,
value: list.id,
}))}
value={selectedList && selectedList.id}
placeholder={selectedList && selectedList.name}
className={styles.field}
onChange={handleSubmit}
onBlur={handleSubmit}
onClose={handleSubmit}
wrapSelection={false}
searchInput={{ autoFocus: true }}
/>
现在 - 键盘导航不起作用,但我可以为每个元素设置样式
<Dropdown
ref={field}
fluid
selectOnNavigation={false}
name="listId"
value={selectedList && selectedList.id}
onSearchChange={handleSearchChange}
search={filterLists}
placeholder={selectedList && selectedList.name}
className={styles.field}
onChange={handleSubmit}
onBlur={handleSubmit}
onClose={handleSubmit}
wrapSelection={false}
searchInput={{ autoFocus: true }}
>
<Dropdown.Menu className={classNames(styles.fieldMenu)}>
{filteredLists.map((list) => (
<Dropdown.Item
className={styles.fieldItem}
key={list.id}
text={list.name}
value={list.id}
active={selectedList.id === list.id}
selected={selectedList.id === list.id}
onClick={handleItemClick}
/>
))}
</Dropdown.Menu>
</Dropdown>
可能影响它的功能
const handleItemClick = (_, __) => {
field.current.handleItemClick(_, __);
};
const filterLists = (_e, searchQuery) => {
const filteredList = selectedBoard.lists.filter((item) => !searchQuery || item.name.toLowerCase().includes(searchQuery.toLowerCase()));
return filteredList;
};
const handleSearchChange = (_e, { searchQuery }) => {
const filteredList = filterLists(_e, searchQuery);
setFilteredLists(filteredList);
};
是否有任何我遗漏的属性需要设置才能使键盘导航正常工作?或者是否可以在不向层次结构添加额外元素的情况下设置
Dropdown.Item
和 Dropdown.Menu
的样式?