将参数传递给函数时出错

时间:2018-05-17 14:28:51

标签: reactjs google-maps

您好我正在使用与GoogleMaps的反应,而我正试图将索引传递给onMarkerClick上的函数但是它对我不起作用。这3个参数自动传递(props,marker,e)但是当我传递索引它给我一个错误。 我不明白为什么。如果有人可以帮助我,我不会帮助你。

此代码位于App.js文件

export class MapContainer extends Component {
    onMarkerClick = (props, marker, e, index) => {
        this.setState({
            defaultAnimation: null,
            showingInfoWindow: true,
            activeMarker: marker,
            selectedPlace: props
        });
    }

    render() {
        return (
            {this.state.AddressListMarkers.map((marker, index) => (
                <Marker
                    key={index}
                    onClick={() => this.onMarkerClick(index)} 
                />
            ))}
        )
    }
}

如果可以帮助您测试代码我也放了我的git: https://github.com/Reyniergc/Neighborhood-Map-Builded-With-React.js

非常感谢

2 个答案:

答案 0 :(得分:1)

我猜,您使用当前代码获取markereindex的未定义值。

如下所示调用onClick处理程序应该可以解决问题:

<Marker
     key={index}
     onClick={(props, marker, e) => this.onMarkerClick(props, marker, e, index)} 
/>

答案 1 :(得分:0)

您面临的错误是什么?

您应该调用传递所有参数的方法:

onClick={() => this.onMarkerClick(marker, e, index)}

但你可以直接引用道具:

this.onMarkerClick  = this.onMarkerClick.bind(this);
onMarkerClick = (marker, e, index) => {
        this.setState({
            defaultAnimation: null,
            showingInfoWindow: true,
            activeMarker: marker,
            selectedPlace: this.props
        });