react 16.8.6 前端请求,用useEffect调用接口,但是这样接口会被不停的调用,那么代码该怎么写?

react 16.8.6 前端请求,打开页面就要调用接口,获取数据,于是用useEffect调用接口,但是这样接口会被不停的调用,那么代码该怎么写?

useEffect(()=>{
        axios.get('/getYearMonth').then(res=> {
            console.log('getYearMonth',res);
            setValues(oldValues => ({
                ...oldValues,
                fileList:res.data.msg
            }));
        })
    },[values]);
阅读 6.8k
2 个回答
// 页面进来只调用一次
useEffect(()=>{
    axios.get('/getYearMonth').then(res=> {
        console.log('getYearMonth',res);
        setValues(oldValues => ({
            ...oldValues,
            fileList:res.data.msg
        }));
    })
},[]);

这么写:

useEffect(()=>{
    axios.get('/getYearMonth').then(res=> {
        console.log('getYearMonth',res);
        setValues(oldValues => ({
            ...oldValues,
            fileList:res.data.msg
        }));
    })
}, []);

你现在的写法是每当values有变化时都会触发一次,刚好里面请求返回时将values给重新进行了赋值,导致会一直循环触发事件

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题