Объекты ошибки недействительны как реагирующий дочерний элемент в react native, когда я вызываю функцию asyn c в методе рендеринга - PullRequest
0 голосов
/ 28 мая 2020

Я вызываю эту функцию в методе Render в коде React Native, но она показывает ошибку, объекты недействительны в качестве дочернего элемента реакции

display = async () => {
    a="Hellow";
    return a;
}

render() {
    return (
      <View>
        <Text>{await this.display()}</Text>
      </View>
    );
}

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Вам не нужно, чтобы this.display был асинхронным c, поэтому это можно записать как

display = () => {
    a = "Hellow";
    return a;
}

render() {
    const display = this.display();
    return (
      <View>
        <Text>{display}</Text>
      </View>
    );
}

Более того, если вы пытаетесь сделать что-то асинхронно, чтобы изменить то, что отображается, это должно выполняться в методе componentDidMount. Здесь вы должны установить состояние для компонента.

async componentDidMount {
    ...
    const display = await fetchData(url);
    this.setState({ display });
}

render() {
    return (
      <View>
        <Text>{this.state.display}</Text>
      </View>
    );
}
0 голосов
/ 28 мая 2020
• 1000
...