「每日一坑」React Native中TextInput组件光标乱跳问题

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

相关文章
相关标签/搜索