RN TextInput / NB Ввод замедляется через некоторое время - PullRequest
0 голосов
/ 03 мая 2018

Я использую NativeBase в качестве инструментария React Native UI и прекрасно работаю отдельно от этой огромной проблемы, которую я никак не могу решить.

На странице, которая содержит ввод NB (в данном случае с плавающей меткой), я реализовал простую кнопку, которая отображается только тогда, когда что-то написано в текстовом поле, и позволяет пользователю очистить ввод, управляя внутренним компонентом. состояние и настройка «значения» реквизита компонента Input.

<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 раз записи и очистки ввода, и постепенно становится все медленнее и медленнее.

Забавный факт, как только компонент уничтожается и воссоздается (например, при перемещении назад и вперед), отставание исчезает и возвращается к нормальному состоянию, но после повторения того же процесса проблема возвращается.

Версии библиотеки:

  • реагирующий нативный : 0,55,3
  • native-base : 2.4.2

Платформа протестирована:

  • Эмулятор Android 7.0
  • Телефон с Android 7.0
  • Galaxy S7 с Android 7.0

И последнее, но не менее важное: проблема возникает как при обычном запуске, так и при отладке и выпуске сборки (встроенный подписанный APK).

Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...