我正在尝试从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位置根本不为空。
编辑: 现在,我可以访问对象的id值,但是,许多照片与场地并不完全相关,如何从Foursquare api中获取最合适的照片?
答案 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