Я хочу подождать 10 секунд, пока мой вызов API извлечет массив списка категорий из серверной части и сохранит его в подключенном состоянии. Если за 10 секунд ничего не получается c, я хочу установить состояние перехвата ошибок в значение true.
Но проблема заключается в том, что даже после первоначального извлечения массива состояние ошибки устанавливается равным true, а массив CategoriesList в состояние исчезает через 10 сек c.
import React, { useState, useEffect } from "react";
import { doGetAllCategories } from "../helper/adminapicall.js";
const ViewCategories = () => {
let [values, setValues] = useState({
categoriesList: "",
error: false,
});
let { categoriesList, error } = values;
const preloadCategories = () => {
doGetAllCategories()
.then((data) => {
if (data.error) {
return console.log("from preload call data - ", data.error);
}
setValues({ ...values, categoriesList: data.categories });
})
.catch((err) => {
console.log("from preload - ", err);
});
};
useEffect(() => {
preloadCategories();
let timerFunc = setTimeout(() => {
if (!categoriesList && !error) {
setValues({
...values,
error: "Error fetching category list... try after some time !",
});
}
}, 10000);
return () => {
clearTimeout(timerFunc);
};
}, []);
//...further code