我正在创建一个组件,该组件将从api中连续获取数据
(在实际使用中,响应会花费一些时间,因此不会一直被调用)
所以我创建了这个自定义钩子来做
export const callUpdateApi = (url) => {
const [state, setState] = useState({ data: null, loading: true });
useEffect(() => {
setState(state => ({ data: state.data, loading: true }));
axios.get(url)
.then(x => {
return x.data
} , err => {
console.log('CALL UPDATE API ERROR ')
// timer to try again later if request fail
setTimeout(function(){
console.log('err status', err);
setState({...state , data: null})
} , 3000)
} )
.then(y => {
setState({ data: y, loading: false });
});
}, [state.data]);
return state;
};
然后,如果我这样称呼,随着时间的推移,内存使用量将会增加。
如果我设置为使我的api快速响应,那么几分钟内我的内存就快满了