@garpix/fetcher v3.0.0
Как использовать Fetcher
Импортируем
import { Fetcher } from '@garpix/fetcher';В компонент который является странице необходимо добавить Fetcher и прокинуть все
props из react-router-dom.
paramsKey отвечает за ключ в объекте match.params на который будет происходить обновление.
<Fetcher {...props} paramsKey={'0'}>
{(data, error) => {
if(data === null && error !== null) return <ErrorPage error={error} />
if(!data) return null;
const { pageType, page } = data;
const Page = PAGE_TYPES[pageType];
return <Page {...page} />
}}
</Fetcher>Следуя документации настраиваем https://github.com/storeon/storeon
И добавляем
import { page } from '@garpix/fetcher';
const storeonParams = [
...
page,
]FetcherList
Параметры компонента
api: эндпоинт куда фечер будет бегать за данными
- пример эндпоинта
import BaseApi from '@garpix/base-api';
export default class ContentApi extends BaseApi {
getCatalogData = async (params = {}) => {
const res = await this.get('/catalog/product/', params);
return res.data;
};
}Пример использования
<FetcherList api={contentApi.getCatalogData}>
{(data) => {
const {
count,
results = [],
activePage,
loadData,
showMore,
status,
filterParams,
deleteElement,
updateElement,
deleteElementByKey,
updateElementByKey,
isNext,
isPrev,
} = data;
return (
<>
<AppliedFilters />
<FiltersCatalog
categories={categories}
brands={brands}
multy_choise_filters={multy_choise_filters}
/>
<ProductGrid results={results} />
</>
);
}}
</FetcherList>Параметры функции рендера
count: общее колличество элементов
results: множество данных описывающих основные сущности
activePage: текущяя активная страница пагинации
loadData: функция принимающяя (page, filterParams, isConcat)
Название параметра | Параметры
----------------|----------------------
page | обязательный параметр
filterParams | {}
isConcat | false
- применима в момент когда необходимо обновить
resultsс применением некоторых фильтров
showMore: функция которая может подгрузить еще данных в results
status: текущий статус получения данных loading, failed, loaded
filterParams: текущие примененные фильтры
deleteElement: функция которая удаляет элемент по его индексу
- в качестве параметра принимает
index
deleteElementByKey: функция которая удаляет элемент по его ключу
- в качестве параметра принимает
value,key
updateElementByKey: функция которая обновляет элемент по его ключу
- в качестве параметра принимает
obj,value,key
isNext: этот параметр говорит о том есть ли следующяя страница bollean
isPrev: этот параметр говорит о том есть ли предыдущая страница bollean
otherData: этот параметр содержит дополнительные данные с АПИ. По умолчанию undefined
reload: Запрашивает данные с текущими фильтрами
Changelog
See CHANGELOG.md.
Contributing
See CONTRIBUTING.md.
License
4 years ago