React with TypeScript - 将 Axios Get 方法转换为通用 Axios Get 方法
React with TypeScript - turn Axios Get method into Generic Axios Get Method
我正在尝试将我的 axios Get
方法变成 generic method
,这样我就可以在任何需要的地方重复使用它。
我在如何让它工作方面遇到了一些麻烦。让我给你看一些代码
axios.get(`${urlUser}?userName=${getUserName()}`)
.then((response: AxiosResponse<userProfile>) => {
setProfile(response.data);
})
这是我正在尝试转换为通用方法的 get 方法。
Url 和状态函数 setProfile
可以作为参数传入,但 userProfile
模型需要是通用的
export const Get = <T>(url: string, setState: any, Response: T) => {
axios.get(url)
.then((response: AxiosResponse<T[]>) => {
setState(response.data);
})
}
这是通用的转换代码。
但是,这行不通,因为在 AxiosResponse
中,我需要为响应传递某种模型。
我尝试向函数添加通用 Response
参数,但将 Response
添加到 AxiosResponse<>
中不起作用
我认为我还差得远,知道如何解决这个问题吗?
非常感谢
解决方案
export const Get = <T,>(url: string, setState: any) => {
axios.get(url)
.then((response: AxiosResponse<T[]>) => {
setState(response.data);
})
}
调用函数的地方
Get<userProfile>(`${urlUser}?userName=${getUserName()}`)
我正在尝试将我的 axios Get
方法变成 generic method
,这样我就可以在任何需要的地方重复使用它。
我在如何让它工作方面遇到了一些麻烦。让我给你看一些代码
axios.get(`${urlUser}?userName=${getUserName()}`)
.then((response: AxiosResponse<userProfile>) => {
setProfile(response.data);
})
这是我正在尝试转换为通用方法的 get 方法。
Url 和状态函数 setProfile
可以作为参数传入,但 userProfile
模型需要是通用的
export const Get = <T>(url: string, setState: any, Response: T) => {
axios.get(url)
.then((response: AxiosResponse<T[]>) => {
setState(response.data);
})
}
这是通用的转换代码。
但是,这行不通,因为在 AxiosResponse
中,我需要为响应传递某种模型。
我尝试向函数添加通用 Response
参数,但将 Response
添加到 AxiosResponse<>
我认为我还差得远,知道如何解决这个问题吗?
非常感谢
解决方案
export const Get = <T,>(url: string, setState: any) => {
axios.get(url)
.then((response: AxiosResponse<T[]>) => {
setState(response.data);
})
}
调用函数的地方
Get<userProfile>(`${urlUser}?userName=${getUserName()}`)