我在无限循环中运行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>;
};
我一直在努力寻找解决方案,但似乎没有任何效果。 数据进入存储区,但不确定为什么一直循环。