Size: a a a

2019 December 15

B

Bogdan in React Kyiv
Terry Sahaidak
в реальному житті в тебе можуть бути searchProductList, homeProductList, userSavedProductList, productsInCart

ти пропонуєш завжди це все тримати в одному масиві і лиш посилання в інших списках?
Это все отдельные сущности. Зачем их держать в одном массиве?
источник

TS

Terry Sahaidak in React Kyiv
Bogdan
Это все отдельные сущности. Зачем их держать в одном массиве?
правильно
а в тебе products один масив
як мені зробити ProductView, який юзає цю галерею, який буде використовувати різні, тобто конкретний стор мені прийде пропсою?
источник

B

Bogdan in React Kyiv
Terry Sahaidak
правильно
а в тебе products один масив
як мені зробити ProductView, який юзає цю галерею, який буде використовувати різні, тобто конкретний стор мені прийде пропсою?
Я бы передавал пропсами продукты.
источник

TS

Terry Sahaidak in React Kyiv
Bogdan
Я бы передавал пропсами продукты.
молодець
тільки твоя реалізація в двох критичних місцях зав’язана на масиві products, що я й маю на увазі і ти успішно ігноруєш
источник

B

Bogdan in React Kyiv
Terry Sahaidak
молодець
тільки твоя реалізація в двох критичних місцях зав’язана на масиві products, що я й маю на увазі і ти успішно ігноруєш
Что за критичные места?
источник

TS

Terry Sahaidak in React Kyiv
Bogdan
Что за критичные места?
источник

TS

Terry Sahaidak in React Kyiv
источник

B

Bogdan in React Kyiv
А какое это имеет отношение к вьюхе? Это уже конкретная логика, которая в конкретном приложении будет другой. В компонент мы спускаем только хендлеры и уже подготовленные данные
источник

TS

Terry Sahaidak in React Kyiv
Bogdan
А какое это имеет отношение к вьюхе? Это уже конкретная логика, которая в конкретном приложении будет другой. В компонент мы спускаем только хендлеры и уже подготовленные данные
пряме відношення
тому шо зараз цей приклад і ця в’юха зав’язана конкретно на products
источник

B

Bogdan in React Kyiv
ну то есть setSelectedProductId я бы тоже в пропсы вынес
источник

TS

Terry Sahaidak in React Kyiv
відповідно цей приклад повністю відв’язаний від реальності
источник

B

Bogdan in React Kyiv
Terry Sahaidak
пряме відношення
тому шо зараз цей приклад і ця в’юха зав’язана конкретно на products
твой вообще-то тоже
источник

TS

Terry Sahaidak in React Kyiv
хоч зробити приклад і сказати “як треба” — зроби правильно
источник

TS

Terry Sahaidak in React Kyiv
Bogdan
твой вообще-то тоже
взагалі-то ні
источник

TS

Terry Sahaidak in React Kyiv
источник

TS

Terry Sahaidak in React Kyiv
прокинув пропсами і все досі працює
источник

B

Bogdan in React Kyiv
Terry Sahaidak
хоч зробити приклад і сказати “як треба” — зроби правильно
Ну собственно сам стор products может быть производным от каких-то других. Таким образом мы спокойно может зависеть только от него
источник

B

Bogdan in React Kyiv
То есть по каким-то действиям в приложении мы можем прокидывать в него те самые searchProductList, homeProductList, userSavedProductList, productsInCart
источник

AR

Alexey Raspopov in React Kyiv
Terry Sahaidak
ні, не зачепили “самолюбіє”
тема редаксу і “ламає мозок” тут піднімалась не раз, це такий собі термін, який описує ту кількість костилів та лишніх дій, до якої редакс спонукає людей

і це ви мене почали переконувати, що “краще зробити так”, хоч відповідь я дав одразy, ¯\_(ツ)_/¯

я тут для того, щоб допомагати людям. тому ось тримай сентбокс з двома рішеннями задачі, які на мою думку є прийнятними і читаємими:

https://codesandbox.io/s/nostalgic-dust-k5vr3

(а все що я тут висловив виключно моя думка, яку я маю цілковите право висловлювати, як і кожен з присутніх, не забувайте це, перш ніж писати “токсік”)
useDerivedState можно ещё делать через два обычных, делая сравнение без эффекта. Где-то в доках такое предлагается, чтобы избежать дополнительного цикла рендера
function useDerivedState(data) {
 let [state, setState] = useState(data);
 let [prev, setPrev] = useState(data);
 
 if (data !== prev) {
   setPrev(data);
   setState(data);
 }

 return [state, setState];
}
источник

Е

Егор in React Kyiv
Всем привет, подскажите пожалуйста, вот у меня есть компонент home там где отображаются все посты, мне нужно чтобы он перерисовывался каждый раз когда я создаю новый пост с помощью мутации
источник