Redux-Saga take функция с дополнительными аргументами - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь создать набор функций 'taker': функции, переданные в эффект take, чтобы поделиться ими и упростить тестирование саг.

Взятие выглядит следующим образом:

export const takeFn = action => action.type === 'ACTION_TYPE'

В саге:

yield take(takeFn)

Это прекрасно работает, но я не знаю, как передать дополнительный аргумент своему получателю:

export const takeFn = action => action.type === 'ACTION_TYPE' && action.payload.arg === **arg**

Есть идеи?

1 Ответ

0 голосов
/ 14 октября 2019

Похоже, вы захотите сделать его функцией более высокого порядка. Вы передаете какое-то значение, которое хотите проверить, и вам будет возвращена функция takeer, которая проверит это. Например:

export const makeTaker = arg => action => action.type === 'ACTION_TYPE' && action.payload.arg === arg;

// ...

yield take(makeTaker('hello'))
...