【问题标题】:How can I get data from an action?如何从动作中获取数据?
【发布时间】:2023-02-20 16:59:52
【问题描述】:

例如有一个动作:

export const loginSuccessAction = (user: UserInterface) => {
  return (dispatch: Dispatch<ActionInterface>) => {
    dispatch({ type: ActionTypes.LOGIN_SUCCESS, payload: user });
  };
};

是否有可能在 Watcher 中从 loginSuccessAction 获取(用户:UserInterface)?

非常感谢您的回答

【问题讨论】:

    标签: redux-saga


    【解决方案1】:

    是的,每个执行操作的方法都会为您提供操作对象,并且由于您已将用户置于 payload 属性中,因此您可以使用它。例如takeEvery

    function* watchLogin() {
       yield takeEvery(ActionTypes.LOGIN_SUCCESS, loginSuccessSaga);
    }
    
    function* loginSuccessSaga(action) {
      console.log('user: ', action.payload);
    }
    

    或者take

    function* someSaga() {
      const action = yield take(ActionTypes.LOGIN_SUCCESS);
      console.log('user: ', action.payload);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      相关资源
      最近更新 更多