Size: a a a

2020 November 03

c⁣

createStore<🦉>... in ☄️ effector
при этом получив крайне легко тестируемый код
источник

DS

Dmitriy Shuleshov in ☄️ effector
createStore<🦉> ⁣
не эффектор
а логика становится мало предсказуемой

потому что это нарушает ссылочную прозрачность
и даже если просто относиться к редюссерам как к предсказуемой штуке
получается полностью непредсказуемая вещь

ибо мы начинаем вводить градацию
у нас предсказывается весь объект, кроме вот этого поля
Я это понимаю, и сказал что так и нужно отвечать.
источник

YL

Yan👀 Lobaty in ☄️ effector
Tina Dumilina 🇮🇹
по таймаут expire
я сделал альтернативный вариант но не оч понимаю почему количество hi не уменьшается🌚
источник

c⁣

createStore<🦉>... in ☄️ effector
в этом и проблема, разработчики зачастую предпочитают на первый взгляд более простой код правильному
хотя более правильный код, чаще всего не сильно сложнее, но при этом дает гораздо более бенефитов, в частности тестирования, сср и очевидность кода
источник

TD

Tina Dumilina 🇮🇹... in ☄️ effector
Yan👀 Lobaty
я сделал альтернативный вариант но не оч понимаю почему количество hi не уменьшается🌚
спасибо!
источник

TD

Tina Dumilina 🇮🇹... in ☄️ effector
что-то не подумала
источник

YL

Yan👀 Lobaty in ☄️ effector
Tina Dumilina 🇮🇹
спасибо!
но поведение не совсем идентичное обрати внимание)
возможно ты увидишь в чем дело
я твои конструкции не удалял а просто закомментил
источник

AO

Aleksandr Osipov in ☄️ effector
источник

AO

Aleksandr Osipov in ☄️ effector
Вариант со стором
источник

YL

Yan👀 Lobaty in ☄️ effector
а да из-за отсутствия айдишки точно
источник

M

Miseo in ☄️ effector
Короче. Я тупо в шоке. Может быть я не проснулся, хотя кофе уже пью… помогите как у меня получается умножать количество объектов в результирующем масиве? вот логика. Она предельно проста.

приходят новые данные newData дальше проверяем условие, если новые данные типа «а» и их больше нуля, тогда присваеваем их в обект.
Потом приходят другие данные, типа «б» я их присваиваю в результирующий объект. А так как данные типа «а» не пришли я беру их из allStore, где в массиве типа «а» должно быть 23 объекта.
но где то на третьей итерации у меня в массиве становится то 46 то 69 объектов, причём то типа «а» то типа «б». И я не могу понять где я ошибаюсь. Должно быть 23 объекта.

wrapperStore.on(addToWrapperStore, (allStore, newData) => {

   let allData = {};

   if (newData.type === 'a' && newData.data.length > 0) {
      allData.a = newData.data;
   } else if (allStore.a !== undefined) {
      allData.a = allStore.a;
   } else {
     allData.a = [];
 }

  if (newData.type === 'b' && newData.data.length > 0) {
    allData.b = newData.data;
  } else if (allStore.b !== undefined) {
    allData.b = allStore.b;
  } else {
   allData.b = [];
 }

  return allData;
});
источник

YL

Yan👀 Lobaty in ☄️ effector
Miseo
Короче. Я тупо в шоке. Может быть я не проснулся, хотя кофе уже пью… помогите как у меня получается умножать количество объектов в результирующем масиве? вот логика. Она предельно проста.

приходят новые данные newData дальше проверяем условие, если новые данные типа «а» и их больше нуля, тогда присваеваем их в обект.
Потом приходят другие данные, типа «б» я их присваиваю в результирующий объект. А так как данные типа «а» не пришли я беру их из allStore, где в массиве типа «а» должно быть 23 объекта.
но где то на третьей итерации у меня в массиве становится то 46 то 69 объектов, причём то типа «а» то типа «б». И я не могу понять где я ошибаюсь. Должно быть 23 объекта.

wrapperStore.on(addToWrapperStore, (allStore, newData) => {

   let allData = {};

   if (newData.type === 'a' && newData.data.length > 0) {
      allData.a = newData.data;
   } else if (allStore.a !== undefined) {
      allData.a = allStore.a;
   } else {
     allData.a = [];
 }

  if (newData.type === 'b' && newData.data.length > 0) {
    allData.b = newData.data;
  } else if (allStore.b !== undefined) {
    allData.b = allStore.b;
  } else {
   allData.b = [];
 }

  return allData;
});
во-первых это красиво
источник

DO

Dmitry Olyenyov in ☄️ effector
https://share.effector.dev/YnxTNnFn А подскажите, это идеологически правильный способ получить event "updated", который стреляет только если значение, приходящее в event'е receivedFromBackend, изменилось?
источник

c⁣

createStore<🦉>... in ☄️ effector
Miseo
Короче. Я тупо в шоке. Может быть я не проснулся, хотя кофе уже пью… помогите как у меня получается умножать количество объектов в результирующем масиве? вот логика. Она предельно проста.

приходят новые данные newData дальше проверяем условие, если новые данные типа «а» и их больше нуля, тогда присваеваем их в обект.
Потом приходят другие данные, типа «б» я их присваиваю в результирующий объект. А так как данные типа «а» не пришли я беру их из allStore, где в массиве типа «а» должно быть 23 объекта.
но где то на третьей итерации у меня в массиве становится то 46 то 69 объектов, причём то типа «а» то типа «б». И я не могу понять где я ошибаюсь. Должно быть 23 объекта.

wrapperStore.on(addToWrapperStore, (allStore, newData) => {

   let allData = {};

   if (newData.type === 'a' && newData.data.length > 0) {
      allData.a = newData.data;
   } else if (allStore.a !== undefined) {
      allData.a = allStore.a;
   } else {
     allData.a = [];
 }

  if (newData.type === 'b' && newData.data.length > 0) {
    allData.b = newData.data;
  } else if (allStore.b !== undefined) {
    allData.b = allStore.b;
  } else {
   allData.b = [];
 }

  return allData;
});
а зачем там this?) я скорее о том, зачем вообще с эффектором использовать классы?
источник

YL

Yan👀 Lobaty in ☄️ effector
во-вторых разбей желательно сплитом по условиям)
источник

YL

Yan👀 Lobaty in ☄️ effector
чтобы хотя бы проверять по отдельности развилки нежели целиком такой гигаредьюсер
источник

c⁣

createStore<🦉>... in ☄️ effector
Dmitry Olyenyov
https://share.effector.dev/YnxTNnFn А подскажите, это идеологически правильный способ получить event "updated", который стреляет только если значение, приходящее в event'е receivedFromBackend, изменилось?
впринципе красиво
источник

M

Miseo in ☄️ effector
createStore<🦉> ⁣
а зачем там this?) я скорее о том, зачем вообще с эффектором использовать классы?
Так удобнее решать ту задачу что я решаю
источник

DO

Dmitry Olyenyov in ☄️ effector
Я только не знаю, у меня получается что и store подписан на этот event и потом sample туда смотрит. Не будет race condition, когда store успеет обновиться и sample получит уже новое значение?
источник

M

Miseo in ☄️ effector
Yan👀 Lobaty
чтобы хотя бы проверять по отдельности развилки нежели целиком такой гигаредьюсер
тут не понял
источник