Возможно мой совет покажется глупым, так как по Реакту я пока даже еще учебник не дочитал
но в своем поделии делаю как то так:
class Main extends Component {
state = {
Data: [],
isFetching: true,
}
openSpinner = () => {
this.setState(() => ({ isFetching: true }));
}
hideSpinner = () => {
this.setState(() => ({ isFetching: false }));
}
_loaddata = async (tab) => {
this.openSpinner();
const data = await fetchWrapper(URL);
if (data)
this.setState({ Data: data })
this.hideSpinner();
}
async componentDidMount() {
await this._loaddata();
}
render() {
const { isFetching } = this.state;
return (
<>
<Content />
<Spiner show={isFetching} />
</>
)
}
}