Size: a a a

2020 September 23

V

Vasili in ☄️ effector
я сделал с дженериками на асинк-функции
источник

V

Vasili in ☄️ effector
interface RequestParams<T> {
   token?: string;
   resource: string;
   data?: T;
}


const backendRequest = createEffect(async <Data,Response>({token, resource, data }); RequestParams<Data>): Promise<Response> => {});
источник

V

Vasili in ☄️ effector
и потом после аттача resource и параметров пришлось еще раз делать каст
источник

V

Vasili in ☄️ effector
const authorizedRequest = attach({
   source: instanceStore,
   effect: backendRequest,
   mapParams: ({ resource, data }: { resource: string; data?: any }, token) => ({
     token,
     resource,
     data,
   }),
 });
источник

V

Vasili in ☄️ effector
export const createGetRequest = <Response>(resource: string) =>
   attach({
     effect: authorizedRequest,
     mapParams: () => ({ resource }),
   }) as Effect<void, Response>;

 export const createPostRequest = <Data, Response>(resource: string) =>
   attach({
     effect: authorizedRequest,
     mapParams: (data: any = {}) => ({ data, resource }),
   }) as Effect<Data, Response>;
источник

V

Vasili in ☄️ effector
👆
источник

V

Vasili in ☄️ effector
тогда с типами все сходится
источник

TK

Tauka Kunzhol in ☄️ effector
createStore<🦉> ⁣
@mega_tauka я таки зафиксил condition, попутно покрыл fork тестами и улучшил документацию.

Потести пожалуйста свой кейс. Мб предложишь какие улучшения?


https://github.com/effector/patronum/releases/tag/v0.108.0
круто 👍, накачу на свой проект, посмотрю сломается ли где-нибудь еще
источник

🚀🚀

🚀🔬 🚀🔬🚀🔬... in ☄️ effector
Nikita N.
я же вроде все правильно указал? первым типом идет параметры, потом done, fail
дженерик в сокращённой записи всего один и он типизирует функцию-хэндлер целиком

createEffect<(_: number) => string>(async x => x.toString())

такая запись чтобы не конфликтовать с другими оверлоадами, но места под ошибку пока нет
источник

V

Vasili in ☄️ effector
слегка ломает мозг то, что в RxJs можно иметь Observable<T>, а в эффекторе по сути только Store<T | null>... Т.е. я не могу создать пустой store, только инициализированный null-ом... И в стрикт-режиме это напрягает необходимостью проверок, чтобы успокоить компилятор...
источник

AO

Aleksandr Osipov in ☄️ effector
Vasili
слегка ломает мозг то, что в RxJs можно иметь Observable<T>, а в эффекторе по сути только Store<T | null>... Т.е. я не могу создать пустой store, только инициализированный null-ом... И в стрикт-режиме это напрягает необходимостью проверок, чтобы успокоить компилятор...
Это фишка, стор не может содержать undefined
источник

AO

Aleksandr Osipov in ☄️ effector
undefined возвращённый в стор укажет на то что данные не изменились и не будет обновления
источник

V

Vasili in ☄️ effector
но вот у меня есть событие, которое может не произойти... т.е. в сторе нету ничего, концептуально... а нужно класть null...
источник

V

Vasili in ☄️ effector
т.е. даже если этот стор является источником для других, он сейчас будет им выдавать дефолтное значение?
источник

V

Vasili in ☄️ effector
потому что в rx он просто не будет выдавать ничего...
источник

AO

Aleksandr Osipov in ☄️ effector
Vasili
но вот у меня есть событие, которое может не произойти... т.е. в сторе нету ничего, концептуально... а нужно класть null...
Хм, поподробнее, что со створом должно быть при вызове этого события?
источник

V

Vasili in ☄️ effector
если оно произошло, то в стор что-то положилось... а если нет - то и нет...
источник

DS

Dmitriy Shuleshov in ☄️ effector
Vasili
но вот у меня есть событие, которое может не произойти... т.е. в сторе нету ничего, концептуально... а нужно класть null...
Вам не нужен стор😊
источник

AO

Aleksandr Osipov in ☄️ effector
Vasili
если оно произошло, то в стор что-то положилось... а если нет - то и нет...
Не вижу проблемы
источник

V

Vasili in ☄️ effector
Dmitriy Shuleshov
Вам не нужен стор😊
Возможно... но, как в анекдоте, "бетонная плита упала именно на такую"... я пока кроме них особо ничего и не знаю в эффекторе
источник