UseEffect导致无限循环

时间:2019-05-15 19:52:55

标签: reactjs react-hooks use-effect

我在无限循环中运行useEffect时遇到问题。

我试图将活动数据放入我的上下文存储中,但是当我分派给reducer时,它进入了无限循环。有什么想法吗?

const EditActivityPage = ({ activityId }) => {
  const { state, dispatch } = useStore();
  const useFetch = () => {
    const [success, setSuccess] = useState(false);
    const [loading, setLoading] = useState(true);

    const asyncFetch = () => {
      return new Promise((resolve, reject) => {
        api.activities
          .fetchActivity(activityId)
          .then(resposneData => {
            resolve(resposneData);
          })
          .catch(response => {
            reject("Api call failed!");
          });
      });
    };
    useEffect(() => {
      asyncFetch().then(response =>
        dispatch({ type: "getEditActivity", payload: response })
      );


    }, []);

    return { success, loading };
  };

  const { success, loading } = useFetch();

  console.log(state);

  return <h1>Edit activity</h1>;
};

我一直在努力寻找解决方案,但似乎没有任何效果。 数据进入存储区,但不确定为什么一直循环。

0 个答案:

没有答案