
[英]"Expected 1 arguments, but got 2" when passing a useState function in TypeScript
[英]expected 0 arguments, but got 1 while passing arguments to the createAsyncThunk function
这是我正在调用 api(带参数)的服务
const battle = async (obj:any): Promise<result[]> =>{
const data=await fetch(`${API_URL}`,{
method: "POST",
// Adding body or contents to send
body: JSON.stringify({
"1stArg": obj.arg1,
"2ndArg": obj.arg2
}),
// Adding headers to the request
headers: {
"Content-type": "application/json; charset=UTF-8"
}
});
const res = await data.json()
return res;
}
这是我调用该服务的操作
export const getResult=createAsyncThunk<result[]>(
'testing/getResult',
async(obj:any)=>{
const data= await services.battle(obj);
return data;
}
);
这是减速机
builder.addCase(getResult.pending, (state) => ({
...state,
result: null,
}));
builder.addCase(getResult.rejected, (state) => ({
...state,
result: null,
}));
builder.addCase(getResult.fulfilled, (state, action) => ({
...state,
result: action.payload,
}));
选择器
export const getFinalResult = (state: RootState) => state.monsters.result;
这就是我使用的方式
const result=useSelector(getFinalResult);
const handleStartBattleClick = () => {
let obj={
fistArg,2ndArg
}
dispatch(getResult(obj))
}
并得到这个错误
预期为 0 arguments,但得到 1
如果您在那里指定该泛型,则必须完全这样做:
export const getResult=createAsyncThunk<ResultType, ArgumentType>(
否则它将退回到void
,这意味着“没有参数”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.