Taras
привет всем, у меня keyboardAwareScreenView и при клике на последней инпут на странице тайтл навигатора скрывается кто знает как пофиксить?
不退転」
Пипл, что бы забить скрин нужной инфой нужно сделать 4-5 реквестов, когда эти реквесты обрабатывается весь UI фризится, но разве такое возможно? Весь джаваскрипт код обрабатывается на в другом потоке, почему тогда main thread уходит в фриз?
不退転」
На айосе полный фриз, на андроиде лишь слегка подлагивает
不退転」
Тут не стоит вопрос оптимизации, скорее интерес как так происходит?
Kto?
Taras
Ага
Kto?
У тебя какое поведение клавы?
Kto?
Adjust Pan?
Kto?
Kto?
Vadim
Вопрос по RNN. В случае с bottomTabs все компоненты сразу должны грузиться? Или я нет так что-то сделал?
Vadim
Serge
不退転」
Serge
В том же дефолтном TouchableNativeFeedback анимацию начинает JS-тред.
不退転」
на эмуляторе и на девайсе
Serge
不退転」
если делать только один запрос и им заполнять все графики то все ок
Serge
Serge
Для решения этой проблемы чуваки придумали react-native-gesture-handler и связанные либы.
Serge
Чтоб связанные с UI штуки НЕ обрабатывались в JS-треде.
Serge
Хотя это снятие симптомов. Проблема в перегрузке JS-треда.
不退転」
不退転」
и не с gesture'ами
Serge
Serge
不退転」
сори, не понимаю как у меня может фризится UI в JS треде, коль по логике работы RN, во-первых у меня он перегружен тред запросами к апишке, а во-вторых вызовы изменения на UI идут сперва с JS-thread'a, сериализуются, проходят через shadow-thread, затем десериализуются, а потом попадают на main thread где и модифицируют UI
Serge
Возможно, мы говорим о разных вещах. JS однопоточен, он перегружен, запросы на изменение UI не идут, потому что JS перегружен.
不退転」
а, в принципе логично, но если изменения ещё висят на перегруженном js-треде, то фриз main'a меня все-равно тревожит
Serge
Во-во. Тут уже конкретно нужно отлаживать. Начав с определения, JS-тред блокируется или перегружен.
Serge
Попробуйте профилировщиком хромовым посмотреть, выполняется куча всего во время фризов или ничего.
Serge
Если куча всего, то это потенциально можно починить. Если ничего, то сложнее.
不退転」
одно очевидно что именно тонна запросов хламит поток
不退転」
Serge
А вам следует проверить, будут ли фризиться треды, если в ответ на запросы вы не будете ничего делать. Чтоб определить, это именно запросы как таковые роляют или логика обработки ответов. Или запросы во время обработки ответов.
Aleksei
и даже скроллвью фризится?
Danila
Ребята, ситуация:
Есть поиск, с сервера приходят подходящие итемы, они рисуются во Flatlist.
Проблема - некоторые итемы иногда застревают в списке. То есть при последующих рендерах рисуется актуальный массив + несколько лишних итемов. Extradata ситуацию не спасает. Че списку надо??
Aynur
значит неправильно обрабатываете данные с сервера
Serge
Aynur
с key что?
Danila
Айдишники вытаскивает
Aynur
уникальные все?
Danila
Хм, надо бы проверить
Serge
И, говорите, показывает дубликаты, то при этом не показывает йеллоубокса о повторяющихся ключах?
Dmitry
Danila
Там не дубликаты, а результаты одного из поисков не удаляются
Danila
Вроде был бокс но это странно
Danila
Danila
Айди с сервера
Danila
Но надо проверить что там
Dmitry
Я думаю, что пора скинуть код
Danila
ок, 5сек
Danila
<FlatList
bounces={false}
data={users}
keyExtractor={item => item.id + ''}
extraData={this.state}
//extraData={users}
//extraData={users.length}
//extraData={users[0].id}
renderItem={this.renderUserRow}
onEndReached={() => this.more()}
removeClippedSubviews={true}
refreshing={this.state.isSearching}
/>
Danila
users - массив объектов с сервера
Danila
в рендере картинка+текст+кнопка
Aynur
а метод получения с сервера?
Aynur
где users заполняется
Aynur
что за ' item.id + " ' ?
Danila
searchUsers(searchText)
.then(users => {
this.setState({users})
})
Danila
Aynur
меня смущает после +😏
Aynur
чтобы стрингом было?
Danila
ага
Danila
там ругается если число
Danila
со строкой норм
Aynur
ну понятно, toString есть православный
Danila
а разница?)
Aynur
хз, эстетика
Dmitry
Я не перестаю удивляться находчивости людей)
Aynur
я не перестаю удивляться jsу
Aynur
иногда такие перлы выдает
Dmitry
Линтеры спасают немного