如何从对象数组中获取ID值?

时间:2018-09-18 01:04:05

标签: javascript reactjs

我正在尝试从Foursquare API获取最合适的场所照片,但是,我无法访问数组中对象的 id 值。

我创建了一个组件,用于获取最合适的照片。我的组件将场地作为道具,完全没有问题。在React Development Tool中,我可以将所有场所视为道具。

在componentDidMount()中:

fetch(
`https://api.foursquare.com/v2/venues/${this.props.location.id}/photos? 
 limit=1&client_id=something&client_secret=something&v=20180726`
    )

但是,这里的this.props.location id是未定义的。当我尝试手动放置场地ID时,它可以工作。我有很多场馆,每个场馆都需要照相。 在App.js中:

<MyComponent location={this.state.places} />

您可以确保MyComponent位置根本不为空。

  1. 如何正确访问id属性?
  2. 当我尝试手动获取照片时,许多照片与场地并不完全相关,如何选择代表场地的最佳照片?

编辑: 现在,我可以访问对象的id值,但是,许多照片与场地并不完全相关,如何从Foursquare api中获取最合适的照片?

2 个答案:

答案 0 :(得分:1)

我敢打赌this.state.places是一个数组。这意味着this.props.location也是一个数组。这意味着您正在从数组(id)查询this.props.location属性。您应该写类似

<MyComponent location={this.state.places[0]} />

<MyComponent location={this.state.places[current]} />

答案 1 :(得分:0)

您应该访问render()内的props或使用生命周期方法getDerivedStateFromProps()并将以前的状态与新的状态进行比较。 Have a look at the documentation

相关问题