1

我尝试更新 react-google-maps 包装器的可拖动标记的当前位置,并将这些值传递回父级。
我的问题是,它onMarkerPositionChange this要么是 FindLocationMarker 类,要么是标记本身,这取决于函数的调用方式。
onPositionChanged={() => this.onMarkerPositionChange()}是我的另一个选择。

我需要两个,位置的标记和道具中函数的类。
在提供的示例中,this是标记。 evt是未定义的,我知道。

我如何为函数提供类范围和标记?

class FindLocationMarker extends Component {

  onMarkerPositionChange = (evt) => {
    console.log(evt);
    let lat = this.position.lat();
    let lng = this.position.lng();

    this.props.handleMarkerPositionChange(lat, lng);
  }

  render() {
    return (
      <div>
        <Marker
          position={this.props.position}
          draggable
          onPositionChanged={this.onMarkerPositionChange}
        />
      </div>
      )
  }
}

export default FindLocationMarker;
4

1 回答 1

2

经过下面的长时间讨论,我决定使用https://github.com/tomchentw/react-google-maps Marker.jsx 组件更新我对未来问题的答案。

如果要获取标记 onPositionChange 的位置,您需要:

  1. 将标记存储在您的参考文献中
  2. 侦听 onPositionChange 事件,然后访问标记在您的参考中的位置。

例子:

onPositionChanged() {
    const position = this.marker.getPosition();

    // do something with position
}

render() {
    return <Marker
        onPositionChanged={ ::this.onPositionChanged }
        ref={input => this.marker = input}
    />
}
于 2017-12-06T11:57:00.357 回答