Как управлять двумя функциями внутри useEffect - PullRequest
1 голос
/ 11 января 2020

Я использую useEffect для получения данных. В моем эффекте использования реакции у меня есть функция profileApprove(false) и refresh() внутри того же useEffect. Я не хочу, чтобы refre sh запускался, пока не будет завершено profileApprove (false). На данный момент у меня есть setTimeOut, чтобы обработать ожидание profileApprove для меня. Я получаю то, что хочу с помощью setTimeOut, но не знаю, как правильно с этим справиться.

export default function Profile() {
    const {
        profileApproved
    } = profileContext();
    function refresh() {
        dispatch({ type: "FECTH_PROFILE", payload: { loading: true } });
    }
    React.useEffect(() => {
        profileApproved(false);
        setTimeout(() => {
            refresh();
        }, 1000);
    }, []);

1 Ответ

2 голосов
/ 11 января 2020

Ваш метод profileApprove возвращает обещание по завершении? Если это так, просто подождите, прежде чем позвонить refre sh

export default function Profile() {
    const {
        profileApproved
    } = profileContext();
    function refresh() {
        dispatch({ type: "FECTH_PROFILE", payload: { loading: true } });
    }
    React.useEffect(() => {
        profileApproved(false).then(refresh)
    }, []);

...