【问题标题】:What is diffrent these javascript array type? [duplicate]这些javascript数组类型有什么不同? [复制]
【发布时间】:2022-11-22 10:52:59
【问题描述】:

enter image description here enter 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;

我不知道有什么问题

【问题讨论】:

  • 在请求完成之前,您正在记录并返回菜单列表。

标签: javascript arrays typescript axios


【解决方案1】:

这不是数组类型的区别。这是 Javascript 的异步进程。你返回菜单列表;在使用 Axios 时来自 API 的响应数组完成之前。

所以我认为你可以像这样修复你的代码:

export const getAllProjects = () => {
    const menulist: Tree = [];
    return axios(axios_config)
    .then((response) => {
        response.data.map((item: Projects) => {
            menulist.push(item);
        })

        return menulist;
    });
}

我不运行此代码,但希望这可以帮助您解决问题。此代码将返回一个 Promise,因此您必须调用 .then() 函数来获取数组。

【讨论】:

    【解决方案2】:

    我解决了这个问题,原因是react-hydration-error

    如果你遇到这个问题,试试这个文档的工具Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-25
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      相关资源
      最近更新 更多