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

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

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

30 ответов

26 просмотров

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
да, это уже деталь реализации, главное чтобы данны...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта