У меня есть опыт работы со старым Так что я могу предложить вам эти chanfes
useEffect(() => {
setLoading(true); // here
fetchDefibs();
console.log(loading)
}, [])
Затем
const fetchDefibs = () => {
dataProvider.getList('defibrillateurs', {
filters: {},
sort: {field: 'id', order: 'ASC'},
pagination: { page: 1, perPage: 10 }
}).then((response) => {
setLoading(false); // here
setDefibs(response.defibs)
setLoading(false);
}).catch( e => setLoading(false);)
}
затем
return(
{!loading ? <Loading />
:
<div className={classes.flex}>
<div className={classes.leftCol}>
<div className={classes.flexColumn}>
<Card>
<CardHeader title="Welcome to the administration" />
<CardContent>Lorem ipsum sic dolor amet...</CardContent>
</Card>
......
}
Поскольку вы используете { defibs &&
, это всегда будет верно, как вы Инициализируйте это []
, это будет только ложь, если это undefined
или null
, и использование defibs && defibs.length = 0
не лучший способ, как если бы массив возвращаемых данных базы данных с длиной 0 []
, тогда ваше приложение покажет загрузку