React 的 reduxjs/toolkit 在 typescript 报错的原因?

作者站长头像
站长
· 阅读数 5
报错:TS2322: Type  any  is not assignable to type  never 

React 的 reduxjs/toolkit 在 typescript 报错的原因?

const ErrorSlice = createSlice({
    name: 'error',
    initialState: [],
    reducers: {
        Publish: (state, action) => {
            console.log(action)
            state = [...state, action.payload]
        },
        Consume: () => [],
    }
})
调用端
await axios
    .post(`host`, Params)
    .then((data: Response) => data.data.Response)
    .catch((e) => {
        ErrorState.dispatch(Publish(e.response.data.Error))
    })

我不太明白 never 什么意思我给的不是字符么很明显的

回复
1个回答
avatar
test
2024-06-25

需要使用插件自己的数据类型 PayloadAction

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

const ErrorSlice = createSlice({
    name: 'error',
    initialState: "",
    reducers: {
        Publish: (_, action: PayloadAction<你自己的类型或者基础类型>) => action.payload,
        Consume: () => "",
    }
})
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容