繁体   English   中英

预期为 0 arguments,但在将 arguments 传递给 createAsyncThunk function 时得到 1

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM