
Vladimir
08.07.2017
18:17:53
Даже стоп, нет
Не перерисуются

kana
08.07.2017
18:18:35
Не поможет при компонентах-функциях

Google

Vladimir
08.07.2017
18:18:39
Если грамотно разбить и сделать pure рендер

Roman
08.07.2017
18:18:46

Vladimir
08.07.2017
18:18:57

Roman
08.07.2017
18:19:03
и все это в контексте react-native

kana
08.07.2017
18:19:07
Я к тому, что мб лучше каждую книгу в отдельный коннект по ее id
Хм, вот про рекомпос не подумал
Да, хм, можно тогда денормализованный список вытаскивать из стора
И если ничего сложного делать не нужно, то можно и не нормализовать даже

Roman
08.07.2017
18:21:23
т.е
state.users: [{name: 'Igor', books: [1,2,3]}]
state.books[{id: 1, name: 'First'}, ...]
var books = state.books.filter(book => state.user.books.contains(book.id)) ?

andretshurotshka?❄️кде
08.07.2017
18:21:47
нет

kana
08.07.2017
18:21:59
Мапом
booksIDs.map(bookID => state.books[bookID])
Но вообще все еще зависит от того, какая api

Google

andretshurotshka?❄️кде
08.07.2017
18:23:10
users: { ids: [...], byId: { ... } }
books: { ids: [1], byId: { ..., 1: { ... } } }

kana
08.07.2017
18:23:48
Хранить ids совсем не обязательно же, он чисто для сохранения ордера
А если нет ids, то и byID можно перенести на уровень выше

Дмитрий
08.07.2017
18:24:16
Ещё чтобы итерироваться быстро

kana
08.07.2017
18:24:30
Ну да, но ему это не нужно же

Roman
08.07.2017
18:24:36
зачем ids и byId? 0_0 Почему просто не массив с пользователеми или книгами?

kana
08.07.2017
18:24:39
Ему нужно вывести одного юзера
И его книги, массив книг в самом юзера
В массиве сложны и неэффективны операции доступа по id, удаления и редактирования

Roman
08.07.2017
18:27:30
можете посоветовать эталонный по вашему мнению проект с редаксом? (если это еще будет и реакт-нейтив, то вообще супер, хотя это не особо важно)
в первую очередь интересует скорость разработки и удобство
скорость работы не важна

Rei
08.07.2017
19:04:12
hui

shadowjack
08.07.2017
19:05:48
rei

Rei
08.07.2017
19:21:30
hi

Sergey
08.07.2017
19:39:46

Oleg
08.07.2017
19:40:35

shadowjack
08.07.2017
19:46:11

kana
08.07.2017
20:00:05
Как вариант, он может приложение и не напишет

Nikita
08.07.2017
20:01:08
народ, а смотрите, у меня приложение, где в куче мест используется инфа о, например, юзерах. На сколько норм практика прокинуть в контекст users: Map<id, User> и не париться с прокидыванием пропсов? какие есть подводные камни?

Google

Yui
08.07.2017
20:01:55
А Redux не для этого нужен?
он вроде как раз таки и использует контекст, так что норм решение
но вообще компоненты нужно делать как можно тупее, так что нужно вникать в архитектуру твоего приложения

Nikita
08.07.2017
20:02:49
не, он использует контекст для стейта, где нужно ты себе выборку делаешь. а я даже в тупых компонентах буду на это расчитывать

Yui
08.07.2017
20:03:39
Просто заставлять компонент не просто отображать, а ещё и разбираться в структуре данных для отображения это так себе

Nikita
08.07.2017
20:04:55
с одной сторны - да. с другой у меня в куче мест есть Array<id>, которые либо мэпить до передачи в компонент, либо уже в самом компоненте

Yui
08.07.2017
20:05:34
На мой взгляд правильнее мэпить до передачи
и если что навешивать нужные функции через React.cloneElement
Тут другое дело в том, хочется ли с этим заморачиваться, если так всё организовывать, то времени больше уйдёт и стоит ли это того

shadowjack
08.07.2017
20:09:45
Зависит от того, будет у тебя проект неделю жить или год.

Nikita
08.07.2017
20:12:57

Sergey
08.07.2017
20:17:18

Nikita
08.07.2017
20:17:28
для чего?

Sergey
08.07.2017
20:18:07
Для юзера. Стоп. А как же редакс?

Nikita
08.07.2017
20:20:15
ок, давай расскрою мысль) у меня приложение - чат.
а теперь представь вот этот чат, в котором мы общаемся. У тебя есть аватарка, у меня есть аватарка. есть имя и прочая инфа о юзерах. У каждого сообщения есть sender/author, как хочешь назови. Вот где делать мэппинг uid -> User ?

shadowjack
08.07.2017
20:21:02
А тебе для чего нужен uid?
И что есть User?

Dmitry
08.07.2017
20:22:35
Почему этот маппинг не сделать через мидлвару в нетворк слое ?

Sergey
08.07.2017
20:24:40
Ммм, расскажи, что такое мэпинг
Перебор и изменение массива функцией map ?

Google

Dmitry
08.07.2017
20:26:01
вот это я думаю он имел ввиду

Sergey
08.07.2017
20:28:41
И про мэпинг не понял

Nikita
08.07.2017
20:29:14
маппинг - это когда есть одна сущность и ты ее преобразуешь в другую

Admin
ERROR: S client not available

Nikita
08.07.2017
20:29:36
было uid: 1, стало user: {id: 1, ...}

Dmitry
08.07.2017
20:30:54
Есть два мепа, ты смерджил два мепа и реакт обновил только там где поменялось.

Sergey
08.07.2017
20:32:17

Dmitry
08.07.2017
20:33:02


Roman
08.07.2017
20:33:19
Просто не используй редакс, обходись одним состоянием компонента, и однажды тебя осенит для чего нужно использовать редакс
я понимаю, для чего нужен редакс, но не понимаю, как его нормально использовать. Во всех предыдущих приложениях использовал схему с выделением в сторе отдельного стейта для selectedUsers и тп
Те не отдельное хранилище, которое содержит всех пользователей или все книги, как мне посоветовали выше, а просто отдельный стейт, с которым удобно работать. Нужен список книг - загружаешь и кладешь в state.currentBookList. Смотришь список другого пользователя - стираешь стейт и записываешь новые книги. Накладно с точки зрения производительности и траффика, зато удобно.
Думал, что что-то делаю неправильно и есть какая-то убойная техника, которая позволяет УДОБНО менеджить такие ситуации, но похоже, что нет


Nikita
08.07.2017
20:33:21
вот смотри, тут тебе нужно сразу знание о двух юзерах
если это мапить в списке сообщений - тебе на каждое изменение юзера надо весь список мэпить. а так только нужные сообщения

Dmitry
08.07.2017
20:34:38
на добавление новых юзеров ты мепишь их в {id: {…}} и мерджишь с общим стором

Sergey
08.07.2017
20:34:57

Nikita
08.07.2017
20:36:05

Google

Nikita
08.07.2017
20:36:37
я просто этот самый маппинг думаю вынести в момент рендера компонента

Dmitry
08.07.2017
20:36:37

Nikita
08.07.2017
20:36:54

Dmitry
08.07.2017
20:36:57
и есть компонент который по айдишке юзера отображает этого юзера

Sergey
08.07.2017
20:37:05
Нет, сделай это в компоненте выше, и передай обработаный массив во вью

Nikita
08.07.2017
20:37:07
ну вот так я и хочу сделать)

Dmitry
08.07.2017
20:37:08
т.е берет из стора и по айдишке и отображает
ТАК ДЕЛАЙ

Nikita
08.07.2017
20:37:16

Sergey
08.07.2017
20:38:00

Dmitry
08.07.2017
20:38:29

Nikita
08.07.2017
20:39:38
редукс есть, реселект есть, нормализр не понимаю как поможет. вы не понимаете, что речь идет о списке

Group Butler
08.07.2017
20:40:35
Rei, this type of media is not allowed in this chat.
(1/3)

Sergey
08.07.2017
20:40:50
Хех)

Rei
08.07.2017
20:41:15