如何使用自定义样式的默认语义 UI React 下拉键盘导航?

问题描述 投票:0回答:0

我想使用

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
的样式?

javascript reactjs semantic-ui
© www.soinside.com 2019 - 2024. All rights reserved.