Что я могу предложить вам использовать еще useEffect
с useState
. Что мне нужно проверить, так это то, что если государственная опора правдива, то все должно работать. Чтобы ограничить это, я бы использовал условие if
, чтобы проверить, является ли значение этого состояния истинным, а затем выполнить его, в противном случае - нет.
Я думаю:
const [isLoaded, setIsLoaded] = useState(false);
useEffect(() => {
if (isLoaded && changePage) {
updateData(); // <---wont run as isLoaded is false at first load
setIsLoaded(false);
}
}, [changePage]);
useEffect(() => {
if (isLoaded && search) {
updateData();// <---wont run as isLoaded is false at first load
setIsLoaded(false);
}
}, [search]);
useEffect(() => {
if (isLoaded && sortBy) {
updateData();// <---wont run as isLoaded is false at first load
setIsLoaded(false);
}
}, [sortBy]);
useEffect(() => {
setIsLoaded(true); // <---sets the isLoaded to true for further observations
if(isLoaded){
updateData(); // <----calls the updateData once.
}
}, []);
Примечание: - Порядок важен .