【问题标题】:Redux saga pass multiple parameter as action and get it into saga function React nativeRedux saga 将多个参数作为动作传递并进入 saga 函数 React native
【发布时间】:2021-03-25 05:19:58
【问题描述】:

我想在 Redux saga 动作中传递多个参数,所以我做了如下代码

this.props.addCartData(_addToCartObject, 'guest') 

内部调度我像下面这样传递

addCartData: (value, isFor) => dispatch(addCartRequest(value, isFor)),

在 saga 函数中我访问如下

function* callAddCart(data, isFor) {
  try {
      console.log("isFor--->", isFor);
     }
   }

export function* cartSaga() {
return yield all([
    yield takeLatest(actionTypes.ADD_CART_REQUEST, callAddCart),
]);

}

但是我记录了 isFor 我没有定义你能帮我解决我在这方面做错了什么吗?

【问题讨论】:

  • 您是否打印了数据。也是未定义的吗?

标签: react-native redux redux-saga


【解决方案1】:

这一切都围绕您的动作创建者addCartRequest

假设它返回一个像这样的对象:

function addCartRequest(value, isFor) {
  return {
    type: actionTypes.ADD_CART_REQUEST,
    value,
    isFor
  };
}

你的传奇观察者yield takeLatest(actionTypes.ADD_CART_REQUEST, callAddCart),会将整个对象传递给callAddCart

假设第一个参数是整个对象,您可以访问它们的值:

function callAddCart(action) {
  console.log("actionType--->", action.type);
  console.log("value--->", action.value);
  console.log("isFor--->", action.isFor);
}

我在 CodeSandbox 中创建了一个工作示例:

https://codesandbox.io/s/2021-03-25-redux-saga-action-creator-payload-hk4sb?file=/src/App.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-13
    • 2018-08-04
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 2022-01-13
    • 2018-09-03
    • 1970-01-01
    相关资源
    最近更新 更多