Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React-Redux分派函数:应为0个参数,但得到1个TS2554_Reactjs_Typescript_Redux - Fatal编程技术网

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
?当然,我在帖子中添加了一些信息。