我一直在使用NativeBase作为React Native UI工具包,并且完全脱离了这个我无法解决的巨大问题。
在包含NB输入的页面中(在这种情况下使用floatingLabel),我实现了一个简单的按钮,只有在文本字段中写入内容时才会显示,并允许用户通过管理内部组件来清除输入陈述和设置"值"输入组件的支柱。
<Item underlined success floatingLabel
style={{flexDirection: "row-reverse"}}>
<Label>{I18n.t("handlingUnitCode")}</Label>
<Input autoFocus={true}
blurOnSubmit={false}
autoCorrect={false}
multiline={false}
numberOfLines={1}
keyboardType="phone-pad"
value={this.state.hu}
onSubmitEditing={(evt) => {
const hu = evt.nativeEvent.text;
this._setHU(hu);
if (hu.length > 0) {
this._loadHU();
}
}}
onChangeText={(hu) => this._setHU(hu)}/>
{
this.state.isHUInserted
? <Icon name="close" onPress={() => this._setHU("")}/>
: undefined
}
</Item>
完整的组件代码位于:https://pastebin.com/ZVv05PNH
一旦用户多次写入并清除输入字段,它就会开始变得缓慢和缓慢,同时使用键盘逐个字符地写字。问题主要发生在输入写入和清除40-50次之后,并且逐渐变得越来越慢。
有趣的是,一旦组件被破坏并重新创建(例如通过来回导航),滞后就会消失并恢复正常,但在重复相同的过程之后,问题又回来了。
图书馆版本是:
平台测试是:
最后但同样重要的是,在正常运行,调试运行和发布版本(内置签名APK)时会出现问题。
非常感谢任何帮助!