使用多个参数调度并使用 Redux Toolkit 创建操作

Dispatch with multiple parameters and create action with Redux Toolkit

我对 Redux(尤其是 Redux Toolkit)还很陌生,无法解决以下问题。

我正在使用 Toolkit 重写旧代码。

我知道我可以在我的 createSlice 中执行以下操作。

  reducers: {
    changeDay: (state, action) => {
      state.day = action.payload;
    }
}

并像这样发送:

  store.dispatch(changeDay(true));

然而,我的应用程序中的许多场景都采用第二个参数,以没有工具包的旧 redux 为例

case ACTIVITY:
  return {
    activity: action.data.first,
    anotheractivity: action.data.second,
  };

此操作如下所示:

function clickedActivity(first = undefined, second = undefined) {
  const data = {
    first,
    second,
  };
  return {
    type: ACTIVITY,
    data,
  };
}

在这种情况下,我能够调用 dispatch(clickedActivity(first,second)) 并根据需要获得两个值。

我假设我一直在文档中寻找错误的关键字,因为我找不到解决方案。有什么提示吗?

您可以在 action.payload 中传递一个对象。 例如,

// assume you wanted to pass multiple parameters in reducer function changeDay

store.dispatch(changeDay({ type:ACTIVITY, data,}));


// Now inside the reducer, you can receive it like this

 reducers: {
    changeDay: (state, action) => {
      const {type,data}=action.payload; // You will receive the properties like this

    }
}