Ошибка ссылки: Не удается найти переменную: данные

#react-native

Вопрос:

Я новичок в разработке мобильных устройств React Native. [Ошибка ссылки: Не удается найти переменную: данные] ошибка произошла в следующем коде. Я не знаю, что не так с переменной «данные». Не мог бы кто-нибудь, пожалуйста, помочь.

 export default class PopularComponent extends Component {  constructor(props) {  super(props);   this.state = {  data: [],  isLoading: true  };  }   async getPopularMovies() {  try {  const response = await fetch(Global.popularPath);  const json = await response.json();  this.setState({  data: json.results   });  } catch (error) {  this.setState({ isLoading: false })  console.log(error);  } finally {  this.setState({ isLoading: false });  }  }   componentDidMount() {  this.getPopularMovies();  }   render() {  const { data, isLoading } = this.state;   return (  lt;View style={{ flex: 1, flexDirection: 'column' }}gt;  {isLoading ? lt;ActivityIndicator/gt; : (  lt;FlatList  data={data}  keyExtractor={({ id }, index) =gt; id}  renderItem={({ item }) =gt; (  lt;Image source={{uri : Global.imageBaseUrl item.poster_path}} /gt;  )}  /gt;  )}  lt;/Viewgt;  );  } };   

Комментарии:

1. Это проблема с вызовом переменной «данные» в render() **. Вызывая, например, **data={this.state.data} , все будет в порядке.

2. Полный код в ответе.

Ответ №1:

Эта проблема решается таким образом.

В режиме рендеринга(),

  1. Удалить const { данные, загрузка } = this.state;
  2. Вызовите напрямую data={this.state.data} и this.state.isLoading
 render() {  return (  lt;View style={{ flex: 1, flexDirection: 'column' }}gt;  {this.state.isLoading ? lt;ActivityIndicator/gt; : (  lt;FlatList  data={this.state.data}  keyExtractor={({ id }, index) =gt; id}  renderItem={({ item }) =gt; (  lt;Image source={{uri : Global.imageBaseUrl item.poster_path}} /gt;  )}  /gt;  )}  lt;/Viewgt;  );  } };