为什么在JavaScript中会出现此错误?

为什么在JavaScript中会出现此错误?,javascript,reactjs,Javascript,Reactjs,错误-分析错误。“}”预期的 我对这段代码有问题,在这段代码中,我发送调用一些数据以将它们放置在一个图中,我占用react并使用react,但我找不到如何解决它 vehiculoPorColores = () => { const _this = this fetch("/live/graph/color") .then(response => response.json()) .then(datos => { const vehicleKey = Object

错误-
分析错误。“}”预期的

我对这段代码有问题,在这段代码中,我发送调用一些数据以将它们放置在一个图中,我占用react并使用react,但我找不到如何解决它

vehiculoPorColores = () => {
const _this = this
fetch("/live/graph/color")
  .then(response => response.json())
  .then(datos => {
    const vehicleKey = Object.keys(datos);
    console.log(datos)
    _this.setState(
      {
        vehiculosC: vehicleKey.map((e, i) => (
          { 
            name: vehicleKey[i], datos ,[e]
           }
        )
      },() => {setTimeout(this.vehiculoPorColores, 1000)}
  )
})
}

您缺少一个结束符
}
,错误消息是它需要一个结束符。当定义多个对象值是将这些值放在单独的行上的常见做法时,代码格式将有助于发现这些内容

{name:vehicleKey[i],datos[e]}
变为:

{ 
  name: vehicleKey[i], 
  datos,
  [e]
}
有助于发现错误,如对象键分配中的语法错误
[e]

这就是产生语法错误的原因:

const baz = 'baz'
const syntaxErrorExample = { 
  foo: 'tar', 
  [baz] // <-- Syntax error
} 


您应该使用显示编译错误的IDE或编辑器。例如,使用JSFIDLE,您可以很容易地看到括号的错误:只是一个提示;lambda函数的全部要点是避免执行类似
\u this=this
的操作。你不需要那样做。
const baz = 'baz'
const example = { 
  foo: 'tar', 
  [baz]: undefined // <-- Works
}