Я пытаюсь обновить локальное состояние компонента реакции при щелчке элемента
onChildClick={this.onChildClickCallback}
где onChildClickCallback
- вспомогательная функция вне рендера, которая выглядит следующим образом:
onChildClickCallback = key => {
this.setState({ items: this.props.data, newKey: key }, function() {
console.log(this.state);
});
};
Я написал вышеупомянутый console.log в обратном вызове, так как прочитал, что состояние может обновляться не сразу.
Но, какое бы значение я ни передавал состоянию, оно не обновляется, и консоль записывает одно и то же старое значение ключа и элементов.
Что мне здесь не хватает?
ОБНОВЛЕННЫЙ КОД:
render() {
console.log(this.state);
const items = this.props.data;
return (
<Fragment>
<GoogleMap
center={this.state.center}
onChildClick={this.onChildClickCallback}
>
{items.map(item => (
<Marker
key={item.id}
lat={item.lattitude}
lng={item.longitude}
place={place}
/>
))}
</GoogleMap>
</Fragment>
);
}
И у вас уже есть onChildClickCallback. Я хотел обновить состояние и повторно выполнить компонент, когда onChildClickCallback запущен.