在yield调用中反应Redux Saga传递参数

时间:2019-06-03 07:33:27

标签: reactjs react-redux redux-saga saga

我刚刚开始在我的项目中应用sagas。 目前,我停留在某个时候。我需要通过佐贺将参数传递给call函数。

这是我在传奇中的生成器函数:

  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 :(得分:0)

根据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));
    });
  }