Рубрики
Без рубрики

Paginating App App с семантическим интерфейсом

Как использовать компонент Pagination с семантическим интерфейсом

Автор оригинала: Mason Hargrove.

Для этого поста я собираюсь объяснить, как создать простую систему пагинации, используя Семантический интерфейс Библиотека с Реагировать Отказ

Я собираюсь использовать Свапи API, чтобы иметь данные для ссылки в моем примере.

Я также собираюсь использовать Axios Библиотека на основе по обещанию, чтобы дать вам представление о том, как получить данные в Интернете и связывать его в компонент Pagination, предоставляемый семантическим интерфейсом UI.

Чтобы начать убедиться, что вы установили семантический интерфейс в ваше приложение React. Инструкции о том, как сделать это можно найти здесь Отказ

После того, как вы установите его, и ссылка CSS внутри вашего index.html теперь вы можете импортировать множество различных компонентов, предлагаемых вам, но для этого примера мы будем использовать только Пагинация составная часть.

import React from 'react';
import { Pagination } from 'semantic-ui-react';

const App = () => {
  return (
); }; export default App;

Итак, теперь мы готовы использовать компонент Pagination, но что мы с этим делаем и как мы можем заставить его работать должным образом? Компонент Pagination, как и все компоненты, имеют атрибуты, которые вы можете установить для управления своими компонентами. Вы можете увидеть все из них в документации, но нам нужно только использовать несколько из них, чтобы его работали.

Следующий шаг, который я собираюсь сделать, это извлекать некоторые данные с моей API и отобразить его в моем приложении. Вот пост в блоге на Useffect и документация на Уместите Если вам нужно больше.

import React, { useState, useEffect } from 'react';
import { Pagination } from 'semantic-ui-react';
import axios from 'axios';

const App = () => {
  const [data, setData] = useState([]);
  const [apiUrl, setApiUrl] = useState('https://swapi.co/api/people/');
  
  useEffect(() => {
  	axios.get(apiUrl).then(response => {
  		setData(response.data.results);
    });
  }, [apiUrl]);
  
  return (
); }; export default App;

Чтобы правильно начать пагинацию, нам нужно начать использовать некоторые из параметров атрибута на нашем компоненте Pagination.

import React, { useState, useEffect } from 'react';
import { Pagination } from 'semantic-ui-react';
import axios from 'axios';

const App = () => {
  const [data, setData] = useState([]);
  const [activePage, setActivePage] = useState(1);
  const [apiUrl, setApiUrl] = useState('https://swapi.co/api/people/');
  
  useEffect(() => {
  	axios.get(apiUrl).then(response => {
      setData(response.data.results);
    });
  }, [apiUrl]);
  
  const onChange = (e, pageInfo) => {
  	setActivePage(pageInfo.activePage);
    setApiUrl('https://swapi.co/api/people/?page=' + page.activePage.toString());
  };
  
  return (
); }; export default App;

Первое, что я сделал, был установлен атрибут ActivePage, равный переменной ActivePage, которую я устанавливаю в моем состоянии.

Второй атрибут, OnPageChange, запустит данную функцию, когда компонент обнаруживает новое число страницы. Его первый параметр будет объект события, а второй – это объект, передаваемый в компоненте. Имущество, которое мы хотим использовать, – это свойство ActivePage.

После того, как я установил активную страницу, я тогда обновит свой URL-адрес API. Моя функция EmoSeffect наблюдает за тем, есть ли какие-либо изменения, сделанные в переменной APIURL, если она повторно запускает функцию, указанную, в этом случае она сделает новый HTTP-запрос для дополнительных данных из API.

Если вам нужна дополнительная информация, работающая с семантическим интерфейсом UI или отреагирует, не стесняйтесь комментировать ниже или забронировать сеанс.