React Native — популярный фреймворк для создания мобильных приложений с использованием JavaScript и React. Одной из наиболее распространенных задач при создании приложения React Native является получение данных из API. Axios — популярная библиотека для выполнения HTTP-запросов в JavaScript, которая без проблем работает с React Native.

В этой статье мы узнаем, как использовать Axios для извлечения данных в приложении React Native.

Во-первых, нам нужно установить Axios, выполнив следующую команду в нашем терминале:

npm install axios

После того, как мы установили Axios, мы можем импортировать его в наш компонент React Native и использовать для выполнения запроса GET к конечной точке API. Вот пример того, как это сделать:

import React, {useState, useEffect} from 'react';
import {
  View,
  Text,
  ActivityIndicator,
  FlatList,
  SafeAreaView,
} from 'react-native';
import axios from 'axios';

const App = () => {
  const [data, setData] = useState(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      try {
        const response = await axios.get(
          'https://jsonplaceholder.typicode.com/posts',
        );
        setData(response.data);
        setLoading(false);
      } catch (e) {
        setError(e);
        setLoading(false);
      }
    };

    fetchData();
  }, []);

  if (loading) {
    return (
      <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
        <ActivityIndicator />
      </View>
    );
  }

  if (error) {
    return (
      <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
        <Text>An error occurred</Text>
      </View>
    );
  }

  const renderItem = ({item}) => {
    return (
      <View
        style={{
          padding: 10,
          marginVertical: 8,
          marginHorizontal: 16,
          backgroundColor: '#f9c2ff',
        }}>
        <Text style={{fontSize: 18}}>{item.title}</Text>
        <Text style={{fontSize: 14}}>{item.body}</Text>
      </View>
    );
  };

  return (
    <SafeAreaView
      style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
      <FlatList
        data={data}
        renderItem={renderItem}
        keyExtractor={item => item.id}
      />
    </SafeAreaView>
  );
};

export default App;

В этом примере мы используем хук useEffect для выполнения запроса API при монтировании компонента. Мы также используем хук useState для отслеживания данных, состояния загрузки и состояния ошибки.

Метод axios.get возвращает обещание, которое преобразуется в ответ API, доступ к которому мы можем получить с помощью response.data. Затем мы используем эти данные для отображения списка заголовков сообщений в компоненте.

Мы также используем индикатор загрузки и сообщение об ошибке, чтобы предоставить пользователю обратную связь во время выборки данных или в случае возникновения ошибки.

Это всего лишь простой пример того, как использовать Axios для получения данных в приложении React Native. Вы можете настроить этот пример в соответствии с вашим конкретным вариантом использования, например сделать запрос POST, передать параметры в API и т. д.

В заключение, Axios — это мощная библиотека для выполнения HTTP-запросов в React Native, которая упрощает получение данных из API и их использование в вашем приложении.