Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获(承诺中)类型错误:无法读取';车站';未定义的_Javascript_Mongodb_Reactjs_Heroku - Fatal编程技术网

Javascript 未捕获(承诺中)类型错误:无法读取';车站';未定义的

Javascript 未捕获(承诺中)类型错误:无法读取';车站';未定义的,javascript,mongodb,reactjs,heroku,Javascript,Mongodb,Reactjs,Heroku,我有一个获取前端代码的请求 fetch('/usershop', { method: 'GET', credentials: 'same-origin', headers: { 'Content-Type': 'application/json' } }) .then(res=> res.json()) .then(res=> { var obj = {} //error found here

我有一个获取前端代码的请求

  fetch('/usershop', {
    method: 'GET',
    credentials: 'same-origin',
    headers: {
      'Content-Type': 'application/json'
    }
  })
  .then(res=> res.json())
  .then(res=> {
        var obj = {}
//error found here
        res.map(item=> {
          obj[item["_id"]]={stations: item.locations.stations, position: item.locations.position, yourshopname: item.locations.yourshopname, items: item.items }}
        )
        this.setState({stations: obj})
      })
.catch(err=>console.log(err)) }

当我在final.log之后输入console.log“res”时,我会得到一个对象数组。下面是其中一个对象的示例。换句话说,下面是一个res项。它们都有位置

0:
accepts:[]
firstname: "jon"
items:[{…}]
lastname:"lee"
locations:{position: Array(2), _id: "3lkj2jt390fgs90", stations: 
"21lkjfoadf0j204j2", yourshopname: "jshop", __v: 0}
messages:[]
password:"kajdflka"
username:"alkklagf"
__v:2
_id:"lkjgaklfjgalkfdjglkaj"
__proto__:Object
但当我试图映射它时,它给了我一个错误:无法读取未定义的“stations”属性

当我尝试console.logging item.\u id等等时,一切都成功了

我什么时候开始收到错误的: 当我刚刚在localhost上运行时,我的gitignore文件中有/build。一切都很顺利。但我想把它放在heroku云上。所以我从gitignore文件中取出/build并运行npm运行build。一旦我这样做了,即使我只是在本地主机上运行它,它也停止工作

请帮忙!仅供参考,我需要将每个对象转换为该格式,因为我使用的是Mapbox API gl react API。

在执行提取请求之前,必须创建一个要映射的空对象。(例如,在安装组件时,或在构造函数中)


否则,map函数会尝试映射到未定义的obejct上,因为fetch调用是异步的。

.catch(err=>console.log(err))您可以这样做,这样它会在控制台中打印错误,而不是破坏作为“res”的第一项的app,但是如果另一项没有位置怎么办?你确定所有人都有.locations吗?还要注释那一行…obj[]=。。。为了确保该行存在问题,因为您还将“stations”作为状态变量,所以可能错误在另一个地方