javascript - Axios 在 React 中无法获取数据,但在控制台中可以获取数据

标签 javascript reactjs axios

我的 JSON 看起来像这样

{
    "towns" :[
        {
            "id" : 0,
            "location": "Japanifornia",
            "status" : 1
        },
        {
            "id" : 1,
            "location" : "Kohonohakatsuki",
            "status" : 2
        },
        {
            "id" : 2,
            "location" : "Taxis",
            "status" : 5
        }
        ]
}

我在React中使用axios时出现了这个问题。它应该返回这样的结果。

[
    {
        "id": 0,
        "location": "Japanifornia",
        "status": 1
    },
    {
        "id": 1,
        "location": "Kohonohakatsuki",
        "status": 2
    },
    {
        "id": 2,
        "location": "Taxis",
        "status": 5
    }
]

问题发生了,我在 React 中的 componentWillMount() 中使用了 axios 来获取来自 localhost:7777/towns 的请求。 但请求从未发出,我检查了 json-server 的日志,当我加载或重新加载 localhost:3000(其中包含执行 GET 请求的组件)时,没有发生请求。 我已经检查了从 Firefox 到节点控制台的其他应用程序。 除了 React 不返回任何内容之外,所有应用程序都返回应有的内容

这是我的组件WillMount

  componentWillMount() {
    axios.get('127.0.0.1:7777/towns')
    .then((res) => res.json())
    .then((result) => this.setState({data:result,isLoading: false}))
  }

最佳答案

终于找到解决办法了!!这是因为我的愚蠢错误。

我假设结果是 {[dataHere]} 但实际上它是 [] 数组。

出现错误是因为结果是JS数组而不是Json数组。

关于javascript - Axios 在 React 中无法获取数据,但在控制台中可以获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49572847/

相关文章:

JavaScript、React - 发送多个同时的 ajax 调用

javascript - 在 Angular 中将 <select> 与嵌套对象一起使用

javascript - 使用 Underscore.js 返回列表中的每隔一个项目?

javascript - 使用 React.js JSX 页面时 onClick 按钮事件处理程序不起作用

javascript - 将 prop 值从登录组件向下传递到路由组件

javascript - React — 显示字段但获取对象

javascript - 来自 Axios GET 响应的 VueJs 中的数组为空 | VUEJS/Laravel

javascript - 弹出窗口中的表单,禁用子单击以关闭阻止复选框

javascript - 使用 Javascript 强制下载图像

javascript - 发出多个 Axios 请求导致 CORS 错误