簡體   English   中英

React-Downshift - 如何防止通過 Escape 鍵清除?

[英]React-Downshift - How to prevent clear by Escape key?

我正在使用 React 開源組件Downshift來構建我的自定義下拉菜單。

我面臨的問題是當用戶按下Escape鍵時,Downshift 會清除所選項目(並使用null調用onChange回調)。

即使我的下拉菜單甚至沒有空選項,這也會清除我的下拉菜單。

如何抑制此行為並使其僅關閉打開的下拉列表(如果已打開)而不更改值。

我想我自己想通了:我添加了一個 state 減少了覆蓋默認行為:

  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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM