【发布时间】:2018-06-19 08:29:55
【问题描述】:
componentDidMount() {
const restaurants = Restaurant.all()
restaurants.then( rests => {
this.setState({
restaurants: rests
})
})
}
render() {
const { restaurants } = this.state;
return (
<main className="SearchRestaurantsPage" style={{textAlign: 'center'}}>
<Chosen className="Chosen-select" onChange={ value => console.log(value) }>
{
restaurants.map( restaurant => {
return restaurant ?
( <option key={restaurant.id}>{ restaurant.name }</option> )
:
''
})
}
</Chosen>
</main>
);
}
我在上面有我的反应代码,并试图返回一个映射数组,它应该类似于
[<option key={1}>first</option>, <option key={2}>two</option>, <option key={3}>three</option>]
如果我像这样放置一个随机创建的数组,它会起作用,
render() {
const { restaurants } = this.state;
return (
<main className="SearchRestaurantsPage" style={{textAlign: 'center'}}>
<Chosen className="Chosen-select" onChange={ value => console.log(value) }>
{
[<option key={1}>first</option>, <option key={2}>two</option>, <option key={3}>three</option>]
}
</Chosen>
</main>
);
}
但无论我如何使用 map 方法,它都不会显示任何内容。 我已经检查过有一个数组包含分配给 this.state.restaurant 的元素。
【问题讨论】:
-
您是否从 API 获取餐厅数据?
-
是否有“未定义”条目或者你为什么要检查
restaurant?... -
你说,
this.state.restaurant,但你从restaurants获取值 -
Bojan lvanac - 是的,我从 API 获取数据
-
lipp - 不,没有未定义的条目,但我只是检查了数据是否被正确读取
标签: javascript node.js reactjs syntax