简体   繁体   English

使用Axios,aynsc/await和typescript,不知道这个情况

[英]use Axios, aynsc/await and typescript, I don't know this situation

I make a workflows list using axios response but error occurs我使用 axios 响应创建了一个工作流列表,但出现错误

Argument of type 'Promise<unknown>' is not assignable to parameter of type 'SetStateAction<WorkflowForReactFlowProps[] | null>'.

this Axios code这个 Axios 代码

export const requestWorkflows = async () => {
  try {
    const response: AxiosResponse = await axios.get(`${baseUrl}/workflows`);
    const workflows = formatWorkflows(response.data.workflows);
    return workflows;
  } catch (error) {
    return error;
  }
};

this state and useEffect code这个state和使用效果代码

const [workflows, setWorkflows] =
    useState<Array<WorkflowForReactFlowProps> | null>(null);

  useEffect(() => setWorkflows(requestWorkflows()), []);

why occurs this error?为什么会出现这个错误? and what is the solution?什么是解决方案?

An async function always returns a promise. You can see it from here .异步 function 总是返回 promise。你可以从这里看到它。 To make your code work, you need to change these lines:要使您的代码正常工作,您需要更改以下行:

    const workflows: WorkflowForReactFlowProps[] | null = formatWorkflows(response.data.workflows);

useEffect(async () => setWorkflows((await requestWorkflows())), []);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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