每日一坑文章系列用來記錄平常工做生活中碰到的問題及解決方案,不限於技術類。react
今天碰到但沒有解決的一個問題是React Native中的TextInput組件在Android下用作Markdown編輯器時出現光標亂跳甚至程序崩潰。框架
知界的Markdown編輯器是基於react native框架中的TextInput
組件直接封裝實現的。這裏瘋狂地吐槽一下這個組件,以前有幾個版本碰到因中文輸入問題致使光標亂跳。編輯器
編輯器工具欄按鈕是幫助用戶輸入特定格式的文本,這就須要在插入文本時控制光標位置,目前的方案是對inputRef
調用setNativeProps
設置因插入數據致使的光標位置變換,在最近幾個RN的版本中,Android系統環境又碰到一個問題,selection
設置和onSelectionChanged
一個寫入一個讀取引起死循環,光標亂跳,甚至引起程序崩潰。工具
分析其緣由,是由於編輯文本時,文本變動會觸發selection變動,此問題已經有了PR且已合併進了0.62分支。code
給EXPO項目提交了一個ISSUE,這個bug fix已經被cherrypick到發佈分支,只能在新SDK發佈後,知界的下一版本修復此問題。當前知界的Android版本Markdown編輯器按鈕功能不能盡如人意。input
此外,當前直接在Expokit
上作patch而後自定義發佈是一件很是複雜的事情,以前嘗試過一次放棄了。另外一種思路是對Expokit對應的aar
文件進行拆解,直接更新patch過的類文件再封裝,這種解決方案比較暴力。it
該問題當前還未解決,等解決後給出具體方案。若是你有更好的思路,敬請不吝賜教。io
歡迎下載【知界】,作有想法的知識體系管理工具。QQ交流:3607274958select