使用 useContext 函数获取 useEffect 中的数据

时间:2021-05-14 16:15:20

标签: reactjs axios use-effect use-context

我正在尝试获取调用 useEffect 钩子内的函数的单个元素(基于 ID)。但是,当我想在获取(即 console.log)后访问该对象时,它为空。

这里是我的使用效果获取调用

useEffect(() => {
        async function getFacultad() {
            fetchFacultad(idFacultad);
            console.log(facultad);
            setLoading(false);
        }
        getFacultad();
    }, []);



我在一个单独的文件上调用这个 useContext 函数

const fetchFacultad = async (id) => {
        try {
            await axios
                .post(`${url}/facultad/getFacultad/` + id)
                .then((res) => {
                    dispatch({
                        type: "FETCH_FACULTAD",
                        payload: res.data,
                    });
                });
        } catch (error) {
            console.log(error);
        }
    };



facultad 对象正在正确获取

case FETCH_FACULTAD:
            return {
                ...state,
                facultad: payload,
            };
...



当我在使用 console.log()(第一张图片)获取后尝试访问对象时,我得到 null

我已经检查过获取是否正确完成。出于某种原因,console.log 在获取完成之前正在执行,因此 facultad 对象为空。

0 个答案:

没有答案