Я использую 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).
Любая помощь будет принята с благодарностью!