如何在@reduxjs/toolkit个切片中设置操作以通过该操作传递数据?

以下是切面:

import { createSlice } from '@reduxjs/toolkit'

export tempSlice = createSlice({
  name: "temp",
  initialState: {
    value: 1
  },
  reducers: {
    updateTemp: (data) => {
      console.log(data)
    }
  }
})

export const { updateTemp } = tempSlice.actions

export default tempSlice.reducer

在Reaction组件中,这不起作用.我一直收到错误,说它需要0个参数.

useDispatch(updateTemp(newData))

推荐答案

通过状态片创建的操作接受单个参数对象,该对象将放置在操作的payload属性上.Reducer函数接受两个参数,前一个state和调度的操作对象.useDispatch是一个react 钩子,104接受任何参数,它返回用于分派动作的dispatch函数.

export tempSlice = createSlice({
  name: "temp",
  initialState: {
    value: 1
  },
  reducers: {
    updateTemp: (state, action) => {
      console.log(action.payload);
      ...
    }
  }
})
const dispatch = useDispatch(); // <-- no arguments
...
dispatch(updateTemp(newData));  // <-- newData is action payload

Javascript相关问答推荐

过滤对象数组并动态将属性放入新数组

了解Node.js中的EventEums和浏览器中的addEventEums之间的关系

Angular中计算信号和getter的区别

判断表格单元格中是否存在文本框

成功完成Reducers后不更新状态

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

try 使用javascript隐藏下拉 Select

正则表达式,允许我匹配除已定义的子字符串之外的所有内容

将数组扩展到对象中

在JS中动态创建对象,并将其追加到HTML表中

将对象推送到数组会导致复制

有没有办法更改Chart.js 3.x.x中主要刻度的字体?

在JavaScript中,有没有一种方法可以迭代字符串的词法标记?

我的NavLink活动类在REACT-ROUTER-V6中出现问题

如何在Web项目中同步语音合成和文本 colored颜色 更改

如何使pdf.js上的文本呈现为可选?

使用Java脚本在div中创建新的span标记

Select 所有输入.值

VITE版本中的内联SVG

我在从侧面到内部的react 中面临着推翻观点的问题