

我正在使用 react-bootstrap-typeahead 版本 5.2.1 和 onSearch 方法來處理異步 typeahead 搜索。問題是當用戶輸入很長的數字(例如:99999180)或在999999之后停止輸入然后繼續輸入180(您可以從網路上看到序列)時,我們無法獲得回傳結果,因為查詢引數僅顯示9999918。但是,資料庫中確實存在 999999180。基于舊的 react-bootstrap-typeahead 版本 3.4.7,相同的代碼在相同的場景中運行良好。不太確定這是 5.2.1 版的缺陷嗎?提前致謝。
const onSearch = async (query) => {
setIsLoading(true);
try {
const data = await typeaheadSearch(query);
......
} finally {
setIsLoading(false);
......
}
};
uj5u.com熱心網友回復:
從https://github.com/ericgio/react-bootstrap-typeahead/blob/master/docs/Upgrading.md#v50-break-changes發行說明得到答案
用鉤子重寫的 AsyncTypeahead
這通常應該是一個透明的變化。至少有一個實體可能會破壞現有代碼,但是:如果您的 onSearch 處理程式在每次渲染時重新實體化,這將取消去抖動函式并可能阻止 onSearch 被呼叫。為避免這種情況,請在建構式中系結處理程式或使用類屬性(如果使用類組件)或使用 useCallback 與依賴項陣列(如果使用功能組件):
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352331.html
