【发布时间】:2018-10-18 08:54:20
【问题描述】:
在 JSX 中使用 return 语句的第一个方法可以正常工作
<div>
{this.state.list.map(item => {
return <h6>{item.location.formattedAddress[0]}</h6>
})}
</div>
但这通常应该给出相同的结果:
render() {
const listItems = this.state.list.map((item, index) => (
<h6>{item.location.formattedAddress[0]}</h6>
));
return (
{listItems}
)
}
TypeError: 无法读取未定义的属性“地图”
它在加载页面时运行,而不是在执行从 API 加载数据的函数时运行,请有人协助
【问题讨论】:
-
理想情况下,它们的行为都相同,除非您在 render 方法中有一些东西在
{this.state.list.map(item => { return <h6>{item.location.formattedAddress[0]}</h6> })}执行之前返回 -
使用
return (listItems)(删除{})代替return ({listItems}),因为这会返回一个具有listItems属性的对象。其次检查this.state.list,然后再使用map,以防您的状态尚未填充。
标签: javascript reactjs ecmascript-6 jsx