此问题在此处已有答案:
How do I return the response from an asynchronous call?(44个答案)
21小时前关门了。
enter image description hereenter image description here我认为是相同数组类型,但是,Javascript不会将数据导入到第二个类型'proj_name'中
我使用axios来获取数据
这是我的axios请求tsx文件
import axios,{ AxiosRequestConfig } from 'axios';
import { Projects , Tree } from './PmHomeMenuDataTypes';
const axios_config: AxiosRequestConfig = {
method: "get",
baseURL: "http://localhost:8000/",
url: "service/projects/all",
responseType: "json",
}
export const getAllProjects = () => {
const menulist: Tree = [];
axios(axios_config)
.then((response) => {
response.data.map((item: Projects) => {
menulist.push(item);
})
});
console.log(menulist);
return menulist;
}
我用来获取这个tsx文件数据
import PmHomeTreeComponent from './PmHomeTreeComponent';
import { getAllProjects } from './PmHomeMenuDataGet';
const PmHomeTreeMenu = () => {
return <PmHomeTreeComponent menuData={getAllProjects()} />
}
export default PmHomeTreeMenu;
我不知道什么是问题
2条答案
按热度按时间ghhaqwfi1#
这不是数组类型的差异。这是Javascript的异步过程。您返回menulist;在使用Axios时从API响应数组之前完成。
所以我想你可以这样修改你的代码:
我不运行这段代码,但希望这能帮助你解决你的问题。这段代码将返回一个Promise,所以你必须调用.then()函数来获得数组。
3pmvbmvn2#
我解决了这个问题,原因是React-水化-误差
如果您遇到此问题,请尝试使用此文档检测Link