【发布时间】:2021-11-05 13:50:31
【问题描述】:
我有一个简单的钩子,将 axios 调用包装在 React Query 中:
function useInviteTeamMember(
onSuccess?: Handler,
onError?: Handler,
): UseMutationResult<User> {
const mutation = useMutation(
(payload: InviteMutationVars) => {
return postInviteTeamMember(payload);
},
{
onSuccess: (data) => {
...
我遇到的问题是,根据上面的定义,您希望结果是 User 类型。 即使在那个 onSuccess 处理程序(数据)中也是根据用户类型的智能感知。 但事实并非如此。 要获取实际的用户对象,我必须执行 data['data']。
我认为实际的 post 函数是根本原因,因为它键入了 Promise :
export function postInviteTeamMember(payload: InviteMutationVars): Promise<User> {
return client.post('/user/invite/team', payload);
}
那么我怎样才能重写这段代码,使“数据”的类型正确呢?
【问题讨论】:
标签: reactjs typescript axios react-query