Получите данные в рендере, но при их отображении ничего не появляется - PullRequest
1 голос
/ 09 июля 2020

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