Redux saga 将多个参数作为 action 传递并将其放入 saga 函数 React native

Redux saga pass multiple parameter as action and get it into saga function React native

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

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 我没有定义你能帮我看看我在这上面做错了什么吗?

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

让我们说 returns 一个像这样的对象:

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

你的 saga watcher 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