Reactjs 为什么刷新页面时我的React useEffect不会再次加载?

Reactjs 为什么刷新页面时我的React useEffect不会再次加载?,reactjs,redux,Reactjs,Redux,我正在使用useEffect从firebase获取信息,然后设置我的redux状态。当我第一次打开页面时,我的所有组件都包含正确的信息。当我刷新页面时,所有信息都设置为“无”?我认为这是因为useffect由于某种原因不会再次执行。下面是我的代码: useEffect(async () => { setLoading(true); const fetchData = async () => { await getConfigs().then((r

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

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

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

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

    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();
  }, []);

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

    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();
  }, []);

它一点效果都没有,但我把它去掉后,一切都没有改变。在useEffect中,我从firebase调用数据,并在页面上使用它。但问题是当我重新加载时,它不再从firebase获取信息,因为useEffect不会再次执行?@CodingBoy你确定它不会执行吗?您是否尝试过调试或将
console.log
语句放入回调中?@CodingBoy我已经更新了答案,也许可以尝试一下,所以我想我已经解决了问题。问题出在setRedux函数中。我将快速扫描setRedux函数并返回给您它根本没有任何效果,但在我删除它后,没有任何更改。在useEffect中,我从firebase调用数据,并在页面上使用它。但问题是当我重新加载时,它不再从firebase获取信息,因为useEffect不会再次执行?@CodingBoy你确定它不会执行吗?您是否尝试过调试或将
console.log
语句放入回调中?@CodingBoy我已经更新了答案,也许可以尝试一下,所以我想我已经解决了问题。问题出在setRedux函数中。我将快速扫描setRedux函数并返回给您