我正在使用React开源组件Downshift构建我的自定义下拉列表。
我面临的问题是,当用户按下onChange
键时,Downshift会清除选定的项目(并使用null
调用Escape
回调。
即使我的下拉菜单没有空选项,这也会清除我的下拉菜单。
如何抑制这种行为,并使其仅关闭打开的下拉列表(如果已打开)而不更改值。
答案 0 :(得分:0)
我想我只是自己想通了:我添加了一个状态减少的替代默认行为:
const stateReducer = (_, changes) => {
switch (changes.type) {
// Preventing from clearing value once ESC is pressed
case Downshift.stateChangeTypes.keyDownEscape:
return { isOpen: false };
default:
return changes;
}
};
<Downshift stateReducer={stateReducer}>{/* your callback */}</Downshift>