Ошибка при передаче параметра в функцию реакции - PullRequest
0 голосов
/ 17 мая 2018

Здравствуйте, я использую реакцию с GoogleMaps и пытаюсь передать индекс в функцию onMarkerClick, но она не работает для меня.Эти 3 параметра передаются автоматически (реквизит, маркер и т. Д.). Но когда я передаю индекс, это выдает ошибку.И я не понимаю почему.Я не вы, если кто-то может мне помочь.

Этот код находится в файле 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)} 
                />
            ))}
        )
    }
}

Я также поставил свой мерзавец, если может помочь вам проверить код: https://github.com/Reyniergc/Neighborhood-Map-Builded-With-React.js

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Полагаю, вы получаете неопределенные значения для marker, e и index с текущим кодом.

Вызов обработчика onClick, как показано ниже, должен решить проблему для вас:

<Marker
     key={index}
     onClick={(props, marker, e) => this.onMarkerClick(props, marker, e, index)} 
/>
0 голосов
/ 17 мая 2018

С какой ошибкой вы столкнулись?

Вы должны вызвать метод, передавая все параметры:

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
        }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...