我在React中製作了一個3210組件,當您在文本框中鍵入內容時,它會顯示建議完成的下拉列表。點擊一個建議應該觸發一個回調,並且當文本框失去焦點時下拉應該消失。問題是,onBlur
事件的文本框中觸發之前的onClick
事件的建議,因此發生的事情是:延遲Blur回調
- 點擊項目
- 文本框失去焦點=>
this.setState(this.getInitialState())
- 組件重新排列,因爲狀態已被清除而沒有任何建議框
- 點擊事件落在建議項目曾經是的空白處
什麼是解決這個問題的最佳方法,而不是像onBlur={setTimeout(() => this.setState(this.getInitialState()), 100)}
這樣的破解?
可能最好在這裏複製/粘貼代碼的一部分,因爲該鏈接的內容可能會改變。 – Jacob
@jacob將鏈接更改爲確切的提交哈希。 –