Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RN TextInput/NB输入在一段时间后变慢_Javascript_Reactjs_React Native_Jsx_Native Base - Fatal编程技术网

Javascript RN TextInput/NB输入在一段时间后变慢

Javascript RN TextInput/NB输入在一段时间后变慢,javascript,reactjs,react-native,jsx,native-base,Javascript,Reactjs,React Native,Jsx,Native Base,我一直在使用NativeBase作为React Native UI工具包,并且与这个我无论如何都无法解决的巨大问题完全分离 在一个包含NB输入的页面中(在本例中使用floatingLabel),我实现了一个简单的按钮,该按钮仅在文本字段中写入内容时显示,并允许用户通过管理组件内部状态和设置输入组件的“value”属性来清除输入 <Item underlined success floatingLabel style={{flexDirection: "row-reverse"}}&

我一直在使用NativeBase作为React Native UI工具包,并且与这个我无论如何都无法解决的巨大问题完全分离

在一个包含NB输入的页面中(在本例中使用floatingLabel),我实现了一个简单的按钮,该按钮仅在文本字段中写入内容时显示,并允许用户通过管理组件内部状态和设置输入组件的“value”属性来清除输入

<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>

{I18n.t(“handlingUnitCode”)}
{
const hu=evt.nativeEvent.text;
这是(胡),;
如果(hu.length>0){
这个;
}
}}
onChangeText={(hu)=>this.\u setHU(hu)}/>
{
这是我的国家
?这个。_setHU(“”)}/>
:未定义
}
完整的组件代码如下所示:

一旦用户多次写入和清除输入字段,它开始变慢和缓慢,同时使用键盘逐个字符写入。问题主要发生在输入被写入和清除40-50次之后,并逐渐变得越来越慢

有趣的是,一旦组件被销毁并重新创建(例如来回导航),延迟就会消失并恢复正常,但重复相同的过程后,问题又出现了

图书馆版本包括:

  • 反应本机:0.55.3
  • 本地基数:2.4.2
测试平台包括:

  • 安卓7.0仿真器
  • 安卓7.0手机
  • 搭载安卓7.0的Galaxy S7
最后但并非最不重要的一点是,该问题发生在正常运行、调试运行和发布构建(构建签名APK)中


任何帮助都将不胜感激

避免在构造函数中使用箭头函数和绑定函数来修复问题使用react native textinput调用只是将所有箭头函数替换为构造函数时创建的绑定函数,问题在相同的时间后发生,并且仅在已强调的textinput上发生。