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

问题描述 投票:-3回答:2

我试图从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获得最合适的照片?

javascript reactjs
2个回答
1
投票

我打赌this.state.places是一个数组。这意味着,this.props.location也是一个数组。这意味着你要从数组中查询id属性(this.props.location)。你应该写类似的东西

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

要么

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.