2017-04-20 64 views
0

我想:如何調用函數getCenter()和其他反應 - 谷歌 - 地圖

<GoogleMap 
    defaultZoom={14} 
    center={{lat: props.mapCenter.lat, lng: props.mapCenter.lng}} 
    onCenterChanged={getCenter()} 
/> 

更新:我使用的是Stateless Functional Component

const MarkerClustererExampleGoogleMap = withGoogleMap(props => (

    <GoogleMap 
     defaultZoom={14} 
     center={{lat: props.mapCenter.lat, lng: props.mapCenter.lng}} 
     onCenterChanged={getCenter()} 
    > 
) 

但我得到的錯誤:

getCenter is undefined.

如何解決此問題,謝謝。

回答

0

您需要使用這樣的:

onCenterChanged={this.getCenter} 

注意onCenterChanged是一個事件,所以請確保您定義的構造函數的結合,這樣

this.getCenter = this.getCenter.bind(this); 

,或者你也可以用arrow function,通過Arrow Function:

onCenterChanged={ (e)=> this.getCenter(e)} 

更新:你沒有提到你正在使用Stateless Functional Component,無論何時詢問問題,都儘量提供完整的信息。

檢查這一點,如何界定functionStateless Functional Component

var App =() => { 
 

 
    var click = function() { 
 
     console.log('a'); 
 
    } 
 
    
 
    return(
 
     <div onClick={click}> Click </div> 
 
    ) 
 
} 
 

 
ReactDOM.render(<App/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 

 
<div id='app'/>

+0

哦,我可以用喜歡你的決心,但我有無國籍的組成部分。而我的變量「this」沒有定義。我用部件使用GoogleMap不變量 「這個」 '常量MarkerClustererExampleGoogleMap = withGoogleMap(道具=>(

+0

@ cm-brain檢查更新後的答案,如何在無狀態功能組件中定義函數,寫入方式與其工作方式相同。 –

0

看一看這個例子:Adding a places search box。 的這部分代碼會告訴你正確的路徑)

handleMapMounted(map) { 
    this._map = map; 
} 

handleBoundsChanged() { 
    this.setState({ 
    bounds: this._map.getBounds(), 
    center: this._map.getCenter(), 
}); 
}