Nick
05.06.2018
14:25:59
Всем привет. Кто-нибудь знает, как заставить FlatList показывать только определенное количество айтемов из массива во время скролла? Например у меня есть 100 элементов, я хочу, чтобы отображались всегда только 10 при скролле, а те, что ниже и выше, убирались. Нужно для оптимизации.
Подобный эффект наблюдал только когда рендерил больше 1000 айтемов, и около 100 из них, ближайших к области видимой юзеру, отображались. Можно ли как-то настроить количество ближайших айтемов, которые должны отобразиться в области, видимой юзеру?
Zae
05.06.2018
14:26:55
разве флатлист не делает это за тебя?
Sergey
05.06.2018
14:28:00
ага
flatlist как раз для этих целей
Google
Sergey
05.06.2018
14:28:33
поэтому listview ушел в deprecated
Serj
05.06.2018
14:29:39
возможно вы ищите removeclippedsubviews
свойство
Nick
05.06.2018
14:30:57
да, FlatList это делает, но он слишком много айтемов рендерит, у меня уже на 40 начинает лагать, при добавлении нового айтема. Я хочу попробовать сделать так, чтобы в один момент было около 10 айтемов
Demuz
05.06.2018
15:03:22
Serj
05.06.2018
15:06:35
А что это за optimized?
Denis
05.06.2018
15:06:39
Слава нативному рекуклеру в ведре
Он все могет
Nick
05.06.2018
15:07:08
Denis
05.06.2018
15:08:04
шта?
Recyclerview в андроиде
Sergey
05.06.2018
15:13:18
Google
Demuz
05.06.2018
15:15:52
Sergey
05.06.2018
15:16:52
To infinity and beyond ?
Nick
05.06.2018
15:17:04
10? а если экран большой?
мм, ну тогда не 10, а по несколько догруженных с обеих сторон вне экрана. Походу мне вообще VirtualizedList нужен, а не FlatList
Ivan
05.06.2018
15:22:49
подскажите, есть ли какие-то способы побороть жирнеющий шрифт на android? на ios рисуется где-то в полтора раза тоньше
Ivan
05.06.2018
15:27:07
Посоветуй хороший модуль для работы с gps( в частности с бекграунд модом)
Igor
05.06.2018
15:41:44
Demuz
05.06.2018
15:43:23
И в правду, иногда различия скорости работы дебага и релиза просто поражают.
Nick
05.06.2018
15:51:11
Dmitry
05.06.2018
15:57:02
В какую сторону? Лучше или хуже? Или по разному
И в правду, иногда различия скорости работы дебага и релиза просто поражают.
Demuz
05.06.2018
16:03:35
В какую сторону? Лучше или хуже? Или по разному
Если коротко, я хотел остановить разработку приложения, только потому что слишком много лагов появилось по мере разработки, слишком долгие время отклика и отрисовка переходов и тому подобное. Но после того, как я собрал и протестировал релиз, я просто о*уел от скорости его работы, в сравнении с дебагом. Оно практически не отличалось от работы любых других приложений. Разумеется, решил остаться с ReactNative.
Показал релиз коллегам и сказал, смотрите, есть же все равно задержка, в МС 10-30 может, ну не знаю, примерно, на что мне сотрудники ответили, мол, что это у меня в голове задержка, а приложение работает просто отлично и они не видят никаких артефактов в работе.
Igor
05.06.2018
16:06:14
нативные списки тоже могут подлагивать, если постараться
Nick
05.06.2018
16:06:40
Demuz
05.06.2018
16:07:14
Igor
05.06.2018
16:07:49
Nick
05.06.2018
16:09:00
Demuz
05.06.2018
16:09:24
В стиле Тао бао сделан образец и специально просто огромнейший список.
Google
Nick
05.06.2018
16:10:12
Igor
05.06.2018
16:10:28
попробуй вместо лист итемсов ренедрить <Text />
Demuz
05.06.2018
16:12:11
сегодня попробую
Там невидимый элемент списка отрисовывается только по мере необходимости. Там вобще по-моему 0 элементов вверху и внизу за экраном, если резко попробуешь пролистать список, увидишь отрисовку в реальном времени.
Здесь есть анимация раскрытия списка заказанных блюд, несколько итераций, подсчет общей стоимости и стоимости с дополнительными опциями, таких элементов в этом списке около 400, здесь используется обычный скролл Вью и он абсолютно не лагает.
Nick
05.06.2018
16:20:49
по сложности примерно так же. Просто у меня проблема именно во время добавления нового айтема. Перед добавлением все замирает на пару секунд. Чем больше уже зарендереных айтемов - тем больше задержка
а что за модуль поверх рисует данные на тулбаре? для чего это?
Demuz
05.06.2018
16:22:24
Denis
05.06.2018
16:23:07
Nick
05.06.2018
16:23:26
Demuz
05.06.2018
16:25:01
а что за модуль поверх рисует данные на тулбаре? для чего это?
Ну, я сегодня сделал сессии на сервере, и подумал, что было бы удобно сделать поверх тулбара отрисовку состояния авторизации. В итоге, после ввода кода с смс видно, действительно ли сервер закрепил за клиентом авторизацию и ещё благодаря смене переменных, сразу перерендеривается левое меню дровера. А вообще, это не модуль, это просто поверх приложения тексты, у которых zIndex больше чем у остальных компонентов, ну и собердимое динамическое.
Nick
05.06.2018
16:26:23
Ну, я сегодня сделал сессии на сервере, и подумал, что было бы удобно сделать поверх тулбара отрисовку состояния авторизации. В итоге, после ввода кода с смс видно, действительно ли сервер закрепил за клиентом авторизацию и ещё благодаря смене переменных, сразу перерендеривается левое меню дровера. А вообще, это не модуль, это просто поверх приложения тексты, у которых zIndex больше чем у остальных компонентов, ну и собердимое динамическое.
аа, понятно, спасибо
Alexander
05.06.2018
16:32:08
А как вообще дебажить приложения на react-native? Как его открыть с панелью разработчика от WebKit?
kor
05.06.2018
16:32:56
Alexander
05.06.2018
16:33:17
Demuz
05.06.2018
16:33:55
Ну там вроде ремоут дебаг же есть. Локально он хорошо работает.
Alexander
05.06.2018
16:36:59
Google
Demuz
05.06.2018
16:37:19
Alexander
05.06.2018
16:38:48
Спасибо за фотку доты с консолькой Source Engine
Demuz
05.06.2018
16:39:50
Спасибо за фотку доты с консолькой Source Engine
Что вы что вы. Это даже вторая версия сорса. Но на самом деле хорошо видно как кажды сервис прописан и как минимум видно откуда и что приходит, потому что когда тысячи строк, уже становится неопнятно если сервисы не именовать )
[Panorama] DispatchAsyncEvent backlog, failed to dispatch all this frame. Remaining queue depth: 4609 (was 5823)
Admin
Demuz
05.06.2018
16:40:27
Ладно, заранее извиняюсь за флуд.
Nick
05.06.2018
16:45:35
Denis
05.06.2018
17:11:57
Erik
05.06.2018
17:26:42
axios. как можно изменить global переменную в блоке .then(global user = data.data) ?
Kendr
05.06.2018
17:28:10
Если это не кс:го
Sergey
05.06.2018
17:30:00
поэтому либо используй await
либо дальше в then все прокручивай
подозревая твой вопрос- без await никак
Kendr
05.06.2018
17:31:34
Sergey
05.06.2018
17:31:49
ну и соответственно блок внутри функции async, далее try {} catch(error){}
в какой-то степени да, здесь речь идет об асинхронности, которая идет после выполнения осовного кода, инициализации переменных, например математических функций и тп
Erik
05.06.2018
17:34:33
Google
Sergey
05.06.2018
17:35:22
и выходит, что ты делаешь глобальную переменную, которая уже проинициилизрованна до этого и старый код не может ее подхватить
а когда ты делаешь await ты стопишь исполнение программы, пока не завершится запрос, таким образом ты апдейтишь следующий блок в привычном режиме
await кажется в 2017 в начале появился
просто let a = await axios(..).then((data) => return data)
(примерно)
или this.a = ... - получаешь глобальную переменную
но стопишь весь скрипт и запрос становится как бы синхронным ?
Erik
05.06.2018
17:40:22
Спасибо за объяснение, оказались пробелы в синх / асинх.
Sergey
05.06.2018
17:40:35
ага ? нет проблем
Erik
05.06.2018
18:38:35
ага ? нет проблем
Трабл с Promise.solved(). Я жду в ответе мой словарь, но получаю Promise. Можно ли его заблокировать ? Т.е. чтобы Promise не возвращался. https://gist.github.com/ersul4ik/1e9f8c27533271c139417f6cbd1d151c
Либо достать только [[ PromiseValue ]]
Igor
05.06.2018
18:43:35
Стопит поток может когда запрос вернулся?
Sergey
05.06.2018
18:43:59
он не стопит, он заставляет ждать ?
пока выполнение пройдет