【问题标题】:.map() undefined even though I pass an array.map() 未定义,即使我传递了一个数组
【发布时间】:2016-07-20 22:26:27
【问题描述】:

我正在尝试在我的组件渲染方法中映射一个数组,但它一直显示 .map is not a function,即使它是一个数组。

return (
  <select className="c-select">
    <option value="">Choose your city</option>
      {console.log(state.cities.items)}
      {state.cities.items.map(city => <option key={city.slug} value={city.slug}>{city.name}</option>)}
  </select>
);

控制台日志给了我这个结果:

[{"id":1,"name":"Berlin","country":"Germany","default":1,"slug":"berlin"},{"id":2," name":"Hamburg","country":"Germany","default":0,"slug":"hamburg"}]

我不知道为什么 .map 未定义 - 我在这里遗漏了什么吗?

【问题讨论】:

    标签: javascript arrays reactjs mobx


    【解决方案1】:

    如果您使用的是 Chrome 或 Firefox,看起来state.cities.items 是一个 JSON 字符串,而不是一个数组。

    试试

    {JSON.parse(state.cities.items).map(...)}
    

    当您 console.log 真正的数组时,输出将类似于 Firefox 中的 Array [ Object, Object ] 或 Chrome 中的 &gt;[Object]

    【讨论】:

    • ……太晚了,我要睡觉了。谢谢?
    猜你喜欢
    • 2020-05-23
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多