
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)
Ладно, заранее извиняюсь за флуд.

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

Sergey
05.06.2018
17:35:22

Google

Sergey
05.06.2018
17:35:59
и выходит, что ты делаешь глобальную переменную, которая уже проинициилизрованна до этого и старый код не может ее подхватить
а когда ты делаешь 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
он не стопит, он заставляет ждать ?
пока выполнение пройдет