You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Redux Toolkit的action中传递多个参数

Redux Toolkit 中所有 action 仅支持传入单个参数作为 payload,如果你需要传递多个参数,只需要把所有参数封装成一个对象作为唯一的 payload 传入即可。

代码示例

1. Slice 中reducer定义

import { createSlice, PayloadAction } from '@reduxjs/toolkit'

const counterSlice = createSlice({
  name: 'counter',
  initialState: {
    value: 0,
    note: ''
  },
  reducers: {
    // 单参数原生写法
    incrementByAmount: (state, action: PayloadAction<number>) => {
      state.value += action.payload
    },
    // 多参数适配写法,把所有参数放在一个对象里作为payload
    incrementByMultiParams: (state, action: PayloadAction<{amount: number, remark: string}>) => {
      state.value += action.payload.amount
      state.note = action.payload.remark
    }
  }
})

2. 调用action的写法

// 单参数调用
dispatch(incrementByAmount(3))

// 多参数调用,统一传一个对象即可
dispatch(incrementByMultiParams({
  amount: 5,
  remark: "本次新增5个计数"
}))

这种写法同时兼容 TypeScript 类型校验,你只需要在 PayloadAction 的泛型里定义好 payload 对象的字段和对应类型,调用时如果传入的字段不匹配会自动触发类型错误提示,不需要额外配置其他逻辑。

内容的提问来源于stack exchange,提问作者Fotios Tsakiris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:06:02