对于正在学习RN和已经在RN这条路上摸爬滚打很久的看官应该都知道,虽然RN的跨平台做的很不赖,但是也有一些小细节是无法兼顾的,今天兄弟就遇到了一个小问题。(小问题有时候却很致命)。
问题描述安卓和iOS很多机型上在输入汉字的过程中会出现将字母(拼音)先输入到输入框中参与计算,一般情况下不会有问题,但如果要做字数限制时问题就出现了。例如,限制只能输入10个字符。大部分人的做法是给TextInput加MaxLength={10}来限制字数,这看起来也十分合情合理,没有任何怀疑,毕竟这是官方提供的属性方法。但恰恰是这个属性导致在输入时出现超界问题。比如下图中,当先输入6个汉字,再输入2个字“测试”的时候,拼音字母 "cesh" 参与计算,已经达到了限制的10个字符,因此导致无法输入10个汉字就不能在继续输入了。
这看似是个小问题,但对于使用app的用户来说,体验就特别差了,顾客就是上帝,上帝不满意那问题是不是很大呢!
解决方法当然,问题描述清楚了,就得解决。经过仔细端详,终于找到了解决方法。毫不吝啬的分享给各位看官,如果觉得不肖,可以忽略。下面则是解决方法
最后虽然是个小问题,但是搜遍全网都没找到对症的猛药,在此做个好人好事,希望能帮到各位有需求的看官。
{
this.setState({
wordValue: text
}, () => {
this.setState({ surplusLen: defaultLen - text.length });
});
}}
keyboardType='default'
value={wordValue}
placeholder='请输入'
placeholderTextColor={fontColorSecDeepGray}
/>
{surplusLen}
{
surplusLen < 0 &&
{ backgroundColor: '#FFF272', padding: px2dp(16) }}>
{ color: 'red', fontSize: px2dp(26) }}>
输入内容字数不能超过
{defaultLen}
个
}
解决后如下图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)