Size: a a a

2020 August 13

ф

фильтруй мысли... in ☄️ effector
сейчас, кстати, обдумываю мысль: не инлайнить
источник

Б

Богдан in ☄️ effector
Draft
а чем не угодил combine ? const $stores = combine($store1, $store2, $store3), а в компоненте useStore($stores)
Так то же самое получается, если в компоненте понадобилось считать еще какую-то переменную то нужно дополнительно указать еще в двух местах (в combine и при деструктуризации вызывая useStore). Получаем "double declaration problem" (или даже тройное дублирование). А то что я предлагаю это возможность сразу обратиться к стору прямо в шаблоне без необходимости где-либо дополнительно дублировать
const App = component(()=>{
  return (
   <div>
      <div>{store1Value()}</div>
      <div>{store2Value()}</div>
      <div>{store3Value()}</div>
   </div>
  )
});
Нужно добавить обращение к еще одному стору то просто пишем строчку в шаблоне <div>{store4Value()}</div> и дополнительно ничего не дублируем - не нужно добавлять еще одну строчку useStore(), не нужно добавлять еще один параметр в createComponent и не нужно добавлять еще параметр в combine
источник

D

Draft in ☄️ effector
Богдан
Так то же самое получается, если в компоненте понадобилось считать еще какую-то переменную то нужно дополнительно указать еще в двух местах (в combine и при деструктуризации вызывая useStore). Получаем "double declaration problem" (или даже тройное дублирование). А то что я предлагаю это возможность сразу обратиться к стору прямо в шаблоне без необходимости где-либо дополнительно дублировать
const App = component(()=>{
  return (
   <div>
      <div>{store1Value()}</div>
      <div>{store2Value()}</div>
      <div>{store3Value()}</div>
   </div>
  )
});
Нужно добавить обращение к еще одному стору то просто пишем строчку в шаблоне <div>{store4Value()}</div> и дополнительно ничего не дублируем - не нужно добавлять еще одну строчку useStore(), не нужно добавлять еще один параметр в createComponent и не нужно добавлять еще параметр в combine
У вас какая-то бизнес-логика считается в компоненте?
источник

ф

фильтруй мысли... in ☄️ effector
Богдан
Так то же самое получается, если в компоненте понадобилось считать еще какую-то переменную то нужно дополнительно указать еще в двух местах (в combine и при деструктуризации вызывая useStore). Получаем "double declaration problem" (или даже тройное дублирование). А то что я предлагаю это возможность сразу обратиться к стору прямо в шаблоне без необходимости где-либо дополнительно дублировать
const App = component(()=>{
  return (
   <div>
      <div>{store1Value()}</div>
      <div>{store2Value()}</div>
      <div>{store3Value()}</div>
   </div>
  )
});
Нужно добавить обращение к еще одному стору то просто пишем строчку в шаблоне <div>{store4Value()}</div> и дополнительно ничего не дублируем - не нужно добавлять еще одну строчку useStore(), не нужно добавлять еще один параметр в createComponent и не нужно добавлять еще параметр в combine
нужно иметь возможность легко выносить части jsx в отдельные компоненты
источник

Б

Богдан in ☄️ effector
Draft
У вас какая-то бизнес-логика считается в компоненте?
Причем тут бизнес-логика - тут налицо дублирование описания - когда хочешь отобразить какую-то переменную в шаблоне то нужно не забыть еще добавить строчку в другом месте (добавить стрчоку с вариантом useStore или аргумент+параметр с вариантом createComponent или параметр-деструктуризация с вариантом combine+useStore)
источник

BB

Bugs Bunny in ☄️ effector
чет не выкуплю за дублирование описания? тебе переменная для вьюхи нужна? положи во вьюху
источник

BB

Bugs Bunny in ☄️ effector
не понятно чет ничего
источник

ф

фильтруй мысли... in ☄️ effector
Богдан
Причем тут бизнес-логика - тут налицо дублирование описания - когда хочешь отобразить какую-то переменную в шаблоне то нужно не забыть еще добавить строчку в другом месте (добавить стрчоку с вариантом useStore или аргумент+параметр с вариантом createComponent или параметр-деструктуризация с вариантом combine+useStore)
а в твоём случае враппер юзать?
источник

D

Draft in ☄️ effector
Богдан
Причем тут бизнес-логика - тут налицо дублирование описания - когда хочешь отобразить какую-то переменную в шаблоне то нужно не забыть еще добавить строчку в другом месте (добавить стрчоку с вариантом useStore или аргумент+параметр с вариантом createComponent или параметр-деструктуризация с вариантом combine+useStore)
"Так то же самое получается, если в компоненте понадобилось считать еще какую-то переменную то нужно " - что понадобилось считатать в компоненте, раз в него нужно добавить ещё одну переменную? Почему нельзя добавить ещё одну переменную в combine?
источник

D

Draft in ☄️ effector
@xbgnx Опишите пожалуйста задачу которую нужно решить, условия можно менять постоянно
источник

DS

Dmitriy Shuleshov in ☄️ effector
🅅aleriy 🄺obzar
слишком много наворочено всего и запутанно
Как то обидно было что мое решение запутанное((
Думал раз мое такое, то открою код а там пару строк((( пару часов вникал своими мозгами уточки.

Вот переделал твой пример. Корректно работает? Так как ты ожидал?
https://share.effector.dev/vmdjSFm6
Кстати в случае использовании хука, когда компонент в котором используется селектнутый стор маунтишь\анмаунтишь перевыполняется мап, о чем говорит растущий счетчик в колонке. Как мне кажется это нужно как-то решать. В моем решении кажется именно этого бага нету.

Идея conditionMap в том что он принимает стор, колбек для выборки и буллевый стор. Выполняет пересчет псевдомапнутого стора только когда буллевый стор === true. В примере выше я поставил стор $showSelector, но для изначального вопроса удобно поставлять Gate.status. Насколько я вижу можно еще расширить этот метод поставляемыми сторами от Gate.state, что б покрыть keys от useStoreMap.

@ZeroBias будет интересно твое мнение, где я накосячил. И если нет то зачем понадобился стор мап
источник

ф

фильтруй мысли... in ☄️ effector
Draft
@xbgnx Опишите пожалуйста задачу которую нужно решить, условия можно менять постоянно
https://t.me/effector_ru/153740
у него была задача и он её решил
источник

ф

фильтруй мысли... in ☄️ effector
Dmitriy Shuleshov
Как то обидно было что мое решение запутанное((
Думал раз мое такое, то открою код а там пару строк((( пару часов вникал своими мозгами уточки.

Вот переделал твой пример. Корректно работает? Так как ты ожидал?
https://share.effector.dev/vmdjSFm6
Кстати в случае использовании хука, когда компонент в котором используется селектнутый стор маунтишь\анмаунтишь перевыполняется мап, о чем говорит растущий счетчик в колонке. Как мне кажется это нужно как-то решать. В моем решении кажется именно этого бага нету.

Идея conditionMap в том что он принимает стор, колбек для выборки и буллевый стор. Выполняет пересчет псевдомапнутого стора только когда буллевый стор === true. В примере выше я поставил стор $showSelector, но для изначального вопроса удобно поставлять Gate.status. Насколько я вижу можно еще расширить этот метод поставляемыми сторами от Gate.state, что б покрыть keys от useStoreMap.

@ZeroBias будет интересно твое мнение, где я накосячил. И если нет то зачем понадобился стор мап
а зачем понадобился conditionMap, когда есть useStoreMap?
источник

D

Draft in ☄️ effector
фильтруй мысли
https://t.me/effector_ru/153740
у него была задача и он её решил
Это не задача, это решение
источник

ф

фильтруй мысли... in ☄️ effector
Draft
Это не задача, это решение
🤨 "приходится писать так, а я хочу писать как-то так" -
разве не задача?
источник

D

Draft in ☄️ effector
фильтруй мысли
🤨 "приходится писать так, а я хочу писать как-то так" -
разве не задача?
Очевидно же что нет. Задача это то, из-за чего приходилось так писать
источник

Б

Богдан in ☄️ effector
Draft
@xbgnx Опишите пожалуйста задачу которую нужно решить, условия можно менять постоянно
Вот смотри - на первом скрине когда понадобилось добавить в шаблоне считывание стора то нужно добавить две строчки а на втором скрине только одну строку
источник

Б

Богдан in ☄️ effector
Draft
@xbgnx Опишите пожалуйста задачу которую нужно решить, условия можно менять постоянно
источник

D

Draft in ☄️ effector
Богдан
Вот смотри - на первом скрине когда понадобилось добавить в шаблоне считывание стора то нужно добавить две строчки а на втором скрине только одну строку
Почему здесь не подходит вариант с combine?
источник

DS

Dmitriy Shuleshov in ☄️ effector
фильтруй мысли
а зачем понадобился conditionMap, когда есть useStoreMap?
Он не нужен. Просто вчера в ходе рассуждений в чате пришло такое решение в голову. Вот теперь интересно есть ли в нем баги. А второй вопрос , если Gate появится раньше чем юзстормап то почему кого то не удовлетворил просто гейт+композиция юнитов
источник