169 похожих чатов

Ребята, скажите пожалуйста так правильно делать(отображать карточки в категории, если

id категории и id категории у карточки совпадают. Вопрос, можно ли так делать применительно к FlatList в данном случае? Оно то работает, но правильно ли так писать?

30 ответов

7 просмотров

1. horizontal={false} лишнее, оно по умолчанию так 2. у тебя нет keyExtractor в flatlist или key в айтеме, это неверно для рендера 3. id категории и id категории у карточки разные переменные, всё ок. но вообще делать так, как у вас — очень странно

Dmitry-Kozlov Автор вопроса
Trin Zotoff
1. horizontal={false} лишнее, оно по умолчанию так...

Спасибо! horizontal={false} сделал, т.к. в доке написано, что не будет работать 2 колонки без него..Но не проверял)) А про кей прочёл, что если в данных есть поеле id, то FlatList его автоматически возьмет как кей.. Может я что-то не так понял.. А как можно сделать, чтобы было получше?

Dmitry Kozlov
Спасибо! horizontal={false} сделал, т.к. в доке н...

дефолт === фальш. вы правы, в доке написано, что numColumns работает только при default={false}, но он по дефолту такой

Dmitry Kozlov
Спасибо! horizontal={false} сделал, т.к. в доке н...

про id из айтема для flatlist не уверен, но по-моему он берёт его именно из key. могу ошибаться.

Dmitry Kozlov
Спасибо! horizontal={false} сделал, т.к. в доке н...

смотри, ты рендершить айтем только если catId == item.category. во-первых, забывай про сравнение без приведение типов, тебе нужно не два равенства, а три (нужно больше равенств!!!), т.е. catId === item.category. однако, скорее всего catId у тебя строка из параметра, поэтому стоит сделать что-то типа parseInt(catid) === item.category`или `catId*1 === item.category. потом, ты рендеришь элемент только в том случае, если у тебя выполняется первое условие. а что, если нет? в методе renderItem ты вполне можешь сделать обычную проверку через if, чтобы либо отобразить "нет такого элемента" или отобразить элемент, или ошибку. ну и из категории "разрешите доебаться", <ListItem title={item.title} id={item.id} cookTime={item.cookTime} image={item.image} /> можно записать как <ListItem {...item} />

Dmitry-Kozlov Автор вопроса
Trin Zotoff
смотри, ты рендершить айтем только если catId == i...

Спасибо! По поводу === уже сделал) Сам увидел) Но у меня там оба ид-числа) Но да, все верно, нужно и тип сравнивать! Сейчас остальное буду внедрять)

Dmitry-Kozlov Автор вопроса
Trin Zotoff
смотри, ты рендершить айтем только если catId == i...

можно записать как <ListItem {...item} /> Кстати, так не пишу специально для будущей читабельности кода)

Dmitry-Kozlov Автор вопроса
Trin Zotoff
смотри, ты рендершить айтем только если catId == i...

Наверное я не правильно записал.. Но он рендерит теперь не правильно..Видимо это флетЛист так делает..

Dmitry Kozlov
screenshot Наверное я не правильно записал.. Но он рендерит т...

покажи код, где flatitems, но если коротко, то "да" на твой вопрос )

Trin Zotoff
смотри, ты рендершить айтем только если catId == i...

да и фильтровать в renderItem такое себе) его наоборот мемоизировать над

Dmitry Kozlov
Не понял, какой код?

недоглядел, всё ок, кроме проверки. давай так, если catIf !== item.category, консоль item

Trin Zotoff
зачем?

чтобы item не перерендеривался на каждый чих. но это не всегда требуется, только если там что-то сложное отрисовывается, что на перфомансе сказывается

Vitaliy Ponomarev
чтобы item не перерендеривался на каждый чих. но ...

и фильтрацию вынести из рендера и тож ее в usememo. Но да, это не всегда стоит того) я вцелом подсказал

Церго Сыров
да и фильтровать в renderItem такое себе) его наоб...

ну кстати про фильтры там вроде и не написано, только про условия ( item | null )

Vitaliy Ponomarev
чтобы item не перерендеривался на каждый чих. но ...

о том и речь, он не нужен в мемо чаще всего. а даже и тогда, когда его можно в мемо, на это можно забить.

Vitaliy Ponomarev
ну кстати про фильтры там вроде и не написано, тол...

ну у него не правильно фильтр и реализован. Много раз no items и даже если бы другое отображение было. не круто его там применять)

Trin Zotoff
о том и речь, он не нужен в мемо чаще всего. а даж...

это да) реакт и так норм справляется часто

Церго Сыров
ну у него не правильно фильтр и реализован. Много ...

а, если про код коммент - да, в данном случае там лучше просто отфильтровать data до того как передавать в flatlist

Dmitry-Kozlov Автор вопроса
Vitaliy Ponomarev
а, если про код коммент - да, в данном случае там ...

Думаю, это хорошая идея. Вчера думал об этом тоже. Спасибо!

Trin Zotoff
что мешает передать в дату flatlist фильтр?

да, это уже деталь реализации, главное чтобы данные были отфильтрованы до рендера, а не в самом renderItem проверки были на это

Vitaliy Ponomarev
да, это уже деталь реализации, главное чтобы данны...

я часто встречаю, что люди передают в дату флетлиста ссылку на сторы, редукс или подобные, а те каждый чих коммитят, это ад )

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта