У меня большая проблема с реакцией на родной язык. У меня есть react-native-maps и несколько маркеров. И я хочу, чтобы при нажатии на маркер вы получали некоторые данные, и я отображал их в маркере. Но мне удалось получить данные, но когда я их показываю, ничего не отображается. Однако в функции рендеринга, когда я делаю console.log, я вижу, что мой дисплей, поэтому я не могу понять, почему данные присутствуют в рендере, а не в возврате, что для меня не имеет смысла, я пробовал все. ..
Вот мой код. Если бы кто-то мог мне помочь, было бы очень хорошо. Спасибо :)
Я просто поставил случайный бесплатный api, чтобы показать вам
export class CustomMarker extends Component {
constructor(props) {
super(props)
this.state = {
bonjour: ""
}
}
getData() {
axios.get('https://dog.ceo/api/breeds/image/random').then((data) => {
this.setState({ bonjour: data.data.message})
//console.log(this.state.bonjour)
})
}
render() {
console.log(this.state.bonjour)
return (
<Marker key={this.props.id} coordinate = {{latitude: Number(this.props.data.dLocLati), longitude: Number(this.props.data.dLocLongi)}}
pinColor = {"red"}
title={this.props.data.iVehId}
description={this.props.data.sLocStatus}
onPress={() => this.getData()
}
>
<Callout>
<View>
<Text>{this.state.bonjour}</Text>
</View>
</Callout>
</Marker>
)
}
}