reactjs 如何使用Redux useDispatch传入值?

r1zk6ea1  于 2023-01-02  发布在  React
关注(0)|答案(1)|浏览(190)

如何在@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

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

useDispatch(updateTemp(newData))
hyrbngr7

hyrbngr71#

通过状态切片创建的操作接受将放置在操作的payload属性上的单个参数对象。reducer函数接受两个参数,即先前的state和调度的操作对象。useDispatch是React挂钩,***不接受任何参数,它返回用于调度操作的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

相关问题