Reactjs React-Redux分派函数:应为0个参数,但得到1个TS2554
所讨论的代码如下所示:Reactjs React-Redux分派函数:应为0个参数,但得到1个TS2554,reactjs,typescript,redux,Reactjs,Typescript,Redux,所讨论的代码如下所示: //操作(在单独的文件中) export const contextFilesAddAction=(有效负载:IContextFile)=>({ 类型:上下文\u文件\u添加, 有效载荷, }) ... 常量应用=()=>{ const[contextFiles,dispatch]=React.useReducer(contextFilesReducer,[] const contextFilesAdd=(有效负载:IContextFile)=> 调度(contextFi
//操作(在单独的文件中)
export const contextFilesAddAction=(有效负载:IContextFile)=>({
类型:上下文\u文件\u添加,
有效载荷,
})
...
常量应用=()=>{
const[contextFiles,dispatch]=React.useReducer(contextFilesReducer,[]
const contextFilesAdd=(有效负载:IContextFile)=>
调度(contextFilesAddAction(有效负载))
const contextFilesRemove=(id:string)=>
分派(ContextFileRemoveAction(id))
const contextFilesClear=()=>dispatch(contextFilesClearAction())
const contextFilesGet=(id:string)=>{
const ctxFile=contextFiles.find(f=>f.id==id)
如果(CTX文件的类型=='undefined'){
抛出错误('未找到上下文文件')
}
返回CTX文件
}
...
在每个调度
行中,我都会收到标题中所述的错误
当我转到这些函数的定义时,我可以看到它们的旁边是一个函数的重载,该函数接受一个参数,正如这里使用的那样
它选择不接受参数的重载有什么原因吗?您需要为useReducer添加类型 我从
@reduxjs/toolkit
这是我的密码
export const setClientId = createAction('setClientId');
setClientId('abc') // would throw error, expected 0
//arguments but got 1, realized that I also need to provide type of argument
//Solution : add <string> after createAction
export const setClientId = createAction<string>('setClientId');
setClientId('abc') // works well.
export const setClientId=createAction('setClientId');
setClientId('abc')//将引发错误,应为0
//参数但得到1,意识到我还需要提供参数的类型
//解决方案:在createAction之后添加
export const setClientId=createAction('setClientId');
setClientId('abc')//工作正常。
你能提供一些关于动作的代码吗,比如contextFilesAddAction
?当然,我在帖子中添加了一些信息。