Draft 文件翻譯 - 高階主題 - 管理焦點
在React元件中管理文字輸入焦點可能是一項棘手的任務。 瀏覽器focus/blur API是必不可少的,因此透過宣告性方式設定或刪除焦點純粹透過render()往往會感到尷尬和不正確,並且需要對控制焦點狀態進行有挑戰性的嘗試。
考慮到這一點,在Facebook,我們經常選擇將focus()方法暴露在包裝文字輸入的元件上。這打破了宣告正規化,但也簡化了工程師在其應用程式中成功管理焦點行為所需的工作。
編輯器元件遵循此模式,因此元件上可以使用public focus()方法。 這允許您在需要時使用更高階別元件中的ref直接在元件上呼叫focus()。
元件中的事件偵聽器將觀察到焦點更改,並按預期透過onChange傳播它們,因此state和DOM將保持正確的同步。
您的高階元件很可能會將Editor元件包裝在某種容器中,也許使用padding來設計它以匹配您的應用程式。
預設情況下,如果使用者在嘗試對編輯器進行對焦時,單擊此容器中的外部渲染的編輯器,編輯器將無法識別點選事件。 因此,建議您在容器元件上使用點選監聽器,並使用上述的focus()方法將焦點應用於編輯器。
例如,明文編輯器示例使用此模式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2819/viewspace-2799238/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Draft 文件翻譯 - 高階主題 - DecoratorsRaft
- Draft 文件翻譯 - API - ContentStateRaftAPI
- Draft 文件翻譯 - 快速開始 - 概念Raft
- Draft 文件翻譯 - 快速開始 - 基礎APIRaftAPI
- 「譯」Web 安全高階主題Web
- 文件翻譯器怎麼用?如何翻譯Word文件?
- JavaPoet 文件翻譯Java
- 有ppt文件翻譯軟體嗎?如何翻譯整篇ppt文件
- [譯]React高階話題之高階元件React元件
- ElasticSearch 高階 REST 客戶端翻譯 (待續......)ElasticsearchREST客戶端
- MPAndroidChart文件翻譯Android
- Moya官方文件翻譯
- Samza文件翻譯 : Backgroud
- 本人翻譯的文件
- 實用的Word文件翻譯方法分享,讓Word文件快速翻譯
- 怎麼翻譯整篇Excel文件?Excel文件翻譯一招搞定Excel
- 怎麼把Excel文件翻譯成中文?Excel文件翻譯方法介紹Excel
- [翻譯] 用 CSS 背景混合模式製作高階效果CSS模式
- docker官方文件翻譯3Docker
- SnapKit 中文文件翻譯APK
- docker官方文件翻譯4Docker
- rabbitmq 官方文件翻譯-2MQ
- docker官方文件翻譯5Docker
- docker官方文件翻譯2Docker
- docker官方文件翻譯1Docker
- Core Foundation 官方文件翻譯
- Samza文件翻譯 : Architecture
- Akka Stream文件翻譯:Motivation
- Guava文件翻譯之 ServiceGuava
- Guava文件翻譯之ListenableFutureGuava
- expat介紹文件翻譯
- Quartz.NET 2.x 文件翻譯 - Lesson 11:Advanced (Enterprise) Features 高階功能quartz
- TailWind文件翻譯說明以及每日翻譯進度AI
- Yurii談翻譯(十)怎樣翻譯更地道:最高階的翻譯
- DllImport進階:引數配置與高階主題探究Import
- [譯]React高階話題之Refs and the DOMReact
- [譯]React高階話題之ContextReactContext
- HTTPie 官方文件中文翻譯版HTTP