reactinput聚焦事件_React focus 事件的坑
React 的 focus 事件實現有問題
React 的 focus 事件會冒泡,但是原生 DOM 的 focus 事件是不冒泡的;
原生 DOM 的 focusin 事件是會冒泡的,但是現在 React 沒實現 focusin 事件;
所以現在根據 React 的 focus 事件的行為,它應該被叫做 focusin 才對。
可以看這個 demo。
另外可以發現 React 合成事件里的 eventPhase 也是錯誤的。
相關 issue:
用 enzyme 寫測試的時候直接調用 input.focus() 不會觸發事件
原因是 React 的合成事件是通過捕獲 body 上的事件實現的,但是因為 enzyme 的 mount 方法不會把創建的 div 掛到 body 上,所以直接在 DOM 元素上觸發事件 React 會捕獲不到。
繞過方法是自己創建一個 div 掛到 body 上。
const container = global.document.createElement('div');
global.document.body.appendChild(container);
mount(,{ attachTo: container });
總結
以上是編程之家為你收集整理的React focus 事件的坑全部內容,希望文章能夠幫你解決React focus 事件的坑所遇到的程序開發問題。
如果覺得編程之家網站內容還不錯,歡迎將編程之家網站推薦給程序員好友。
本圖文內容來源于網友網絡收集整理提供,作為學習參考使用,版權屬于原作者。
如您喜歡交流學習經驗,點擊鏈接加入交流1群:1065694478(已滿)交流2群:163560250
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的reactinput聚焦事件_React focus 事件的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oneuijs/You-Dont-Nee
- 下一篇: FSF 称 DRM 被用于锁定、控制和监