Реагировать на параметры передачи Redux Saga в вызове yield - PullRequest
0 голосов
/ 03 июня 2019

Я только начал применять саги в своем проекте. В настоящее время я застрял в какой-то момент. Мне нужно передать аргументы в функцию вызова в рамках саги.

Вот моя функция генератора в саге:

  public* loadUsers() {
    const context = this;
    yield takeLatest("users/LOAD_USERS_REQUEST", function* (params) {
      const data = yield call([context.userService, context.userService.loadUsers]);
      yield put("users/LOAD_USERS_SUCCESS", data));
    });
  }

Мне нужно передать переменную params методу UserService.loadUsers.

Как я могу это сделать?

Приветствие.

1 Ответ

0 голосов
/ 03 июня 2019

Согласно определению функции call:

interface CallEffectFactory<R> {
  (fn: CallEffectFn<Func0>): R;
  <T1>(fn: CallEffectFn<Func1<T1>>,
       arg1: T1): R;
  <T1, T2>(fn: CallEffectFn<Func2<T1, T2>>,
           arg1: T1, arg2: T2): R;
         ....

Мы видим, что он принимает аргументы после параметра CallEffectFn.

Итак, в вашем случае вы можете передать переменную params в качестве второго аргумента функции call следующим образом:

  public* loadUsers() {
    const context = this;
    yield takeLatest("users/LOAD_USERS_REQUEST", function* (params) {
      const data = yield call([context.userService, context.userService.loadUsers],params);
      yield put("users/LOAD_USERS_SUCCESS", data));
    });
  }
...