Есть 2 возможных решения, которые вы можете реализовать: одно - переместить loadData
функцию в useEffect
, но вы не сможете получить доступ к этой функции за пределами useEffect
области:
React.useEffect(() => {
const loadData = async () => {
setLoading(true);
await axios
.get(
"http://localhost:4000/api/instructorcourses/" +
props.instructor.InstructorID
)
.then((res) => {
setData(res.data);
setLoading(false);
});
};
loadData();
}, [props.instructor]);
И другой - обернуть loadData
в useCallback
и добавить его в зависимости useEffect
:
const loadData = React.useCallback(async () => {
setLoading(true);
await axios
.get(
"http://localhost:4000/api/instructorcourses/" +
props.instructor.InstructorID
)
.then((res) => {
setData(res.data);
setLoading(false);
});
}, [props.instructor]);
React.useEffect(() => {
loadData();
}, [loadData]);