每日一坑文章系列用来记录平常工做生活中碰到的问题及解决方案,不限于技术类。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