Я использую Ax ios в моем проекте.
Когда я пытаюсь получить массив, все в порядке, но не тогда, когда я запрашиваю только один элемент - в этом случае я получаю все значения как типы этих значений.
Это когда у меня есть один элемент в массиве ↓
Когда у меня больше чем один элемент в массиве (так и должно работать) ↓
Кто-нибудь раньше сталкивался с такой проблемой?
init. js:
import axios from 'axios';
let api = null;
function getInitializedApi() {
if (api) return api;
const apiURL = getBaseUrl();
api = axios.create({
timeout: 60000,
withCredentials: true,
baseURL: apiURL,
responseType: 'json',
});
api.interceptors.response.use(undefined, (error) => {
if (error.response && error.response.status === 401) {
return Promise.reject(null);
}
return Promise.reject(error.response.data);
});
return api;
}
function getBaseUrl() {
return process.env.REACT_APP_API_URL;
}
export default getInitializedApi();
Контейнер. js
import api from '../api';
...
const mapDispatchToProps = (dispatch) => ({
getCaselist: async (filter, sorting, page) => {
dispatch(actions.caselist.get.list.request());
try {
const { status, data, error } = await api.caselist.getList(
filter,
sorting,
page
);
console.log(data); //That's where I get the issue
// eslint-disable-next-line
if (status == 200) {
const formattedData = makeTableData('caselist', data.data);
formattedData.columns.forEach((column) => {
column.editable = false;
switch (column.accessor) {
case 'patientId':
column.show = false;
break;
case 'id':
column.show = false;
break;
default:
column.show = true;
}
});
dispatch(actions.caselist.get.list.success(formattedData));
dispatch(actions.caselist.set.page(data.page));
dispatch(actions.caselist.set.filter(data.filter));
dispatch(actions.caselist.set.sorting(data.sorting));
} else {
dispatch(actions.caselist.get.list.failure(error));
}
} catch (error) {
dispatch(actions.caselist.get.list.failure(error));
}
},
});