首页 > 解决方案 > 为什么刷新页面时我的 React useEffect 没有再次加载?

问题描述

我正在使用 useEffect 从 firebase 获取信息,然后设置我的 redux 状态。当我第一次打开页面时,我的所有组件都包含正确的信息。刷新页面后,所有信息都设置为空?我认为这是因为 useEffect 由于某种原因没有再次执行。下面是我的代码:

    useEffect(async () => {
    setLoading(true);

    const fetchData = async () => {
      await getConfigs().then((response) => {
        const obj = response;
        setRedux(obj[0]);
      });
    };
    fetchData();
  }, []);

标签: reactjsredux

解决方案


我认为问题在于您提供了一个异步函数作为回调useEffect,这是不允许的。摆脱它,就像这样:

    useEffect(() => {
    setLoading(true);

    const fetchData = async () => {
      // Also, you either await or use .then(), not both
      const response = await getConfigs();
      const obj = response;
      setRedux(obj[0]);
    };
    fetchData();
  }, []);

推荐阅读