.map()未定义,即使我传递一个数组

时间:2016-07-20 22:26:27

标签: javascript arrays reactjs mobx

我正在尝试在我的Component渲染方法中映射一个数组,但它仍然会说.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, “名称”: “柏林”, “国家”: “德国”, “默认”:1, “塞”: “柏林”},{ “ID”:2“,命名 “:” 汉堡”, “国”: “德国”, “默认”:0, “塞”: “汉堡”}]

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

1 个答案:

答案 0 :(得分:1)

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

尝试

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

当你console.log真实数组时,输出看起来像Firefox中的Array [ Object, Object ]或Chrome中的>[Object]