【发布时间】:2019-01-12 00:40:39
【问题描述】:
我是编程和 React 的初学者,我必须创建一个功能正常的谷歌地图单页网站。我正在使用 google-map-react。
我有一个父 App.js(包含对 HTML 侧边栏的调用)和一个包含地图本身和 axios 请求函数的子 Map.js。
我正在发出 axios 请求以从foursquare api 获取数据。它没有副作用。然后我想将这些数据传递给我的 app.js 并更新父状态,以便我可以在侧边栏上呈现位置。
这是我使用的函数(在 Map.js 中)。我不得不将调用放在 componentWillReceiveProps 作为最后一个资源,因为 componentDidMount 不起作用:
https://jsfiddle.net/kd1yuhe5/
我认为这可能是问题所在,但这也是我发现让列表显示的唯一方法:
this.props.updateVenues(this.state.venues)
这是来自 App.js 的代码
updateVenues(venues) {
this.setState({
venues: venues,
});
}
然后我这样调用方法:
<Map updateVenues={this.updateVenues.bind(this)} />
代码有效,地点显示在侧边栏中(如果您需要代码,请告诉我,但我认为这无关紧要),但我一直在提出请求,直到超过配额。 再说一遍:我是初学者。我刚开始 3 个月前。
编辑:
以下是这两个组件:
Map.js
https://jsfiddle.net/kd1yuhe5/5/
【问题讨论】:
-
请分享两个组件
parent and child -
完成,抱歉 Map.js:jsfiddle.net/kd1yuhe5/5 App.js:jsfiddle.net/xwzrm4bp/2
标签: javascript reactjs axios