prostore-axios
Эта библиотека расширяет prostore
,
добавляя в него специальные классы сторов для выполнения http-запросов
с помощью axios.
В библиотеку входит единственный класс AxiosQueryStore
, который
расширяет RequestStore
, обеспечивая единообразное API
для выполнения запросов и хранения их результатов в сторе,
на который можно подписаться.
Использование
import axios from 'axios';
import { AxiosQueryStore } from '@proscom/prostore-axios';
const client = axios.create();
const query: AxiosRequestConfig = {
url: '/countries',
method: 'get'
};
const store = new AxiosQueryStore({
query,
client,
mapData: (x) => x.data,
mapVariables: (data) => {
data;
},
initialData: null,
skipQuery: (vars) => undefined,
updateData: (data, oldData, params) => data,
ssrId: undefined
});
store.loadData(
{
params: {
page: 1
}
},
{
changeState: {},
axiosOptions: {}
}
);
try {
const result = await store.loadData();
} catch (error) {
}
store.state$.subscribe((state) => {
const { loading, loaded, error, data, variables } = state;
});
Для реализации бесконечной подгрузки, см. раздел
"Пагинация с дозагрузкой"
документации @proscom/prostore
.