【发布时间】:2022-07-27 22:05:08
【问题描述】:
我知道这个问题很不寻常,但只要我没有在 axios react 中完成状态,我就需要发送请求。我正在使用 useEffect 调度动作通过动作获取状态结束设置状态,useEffect 依赖项设置为 [status, dispatch, props] 但它仍然只发送 4-5 个请求并停止。我也尝试 setTimout 500 毫秒,但结果相同。有人遇到过同样的问题吗?
const status = useSelector((state: any) => state.reports.status);
useEffect(() => {
let timer: any = null;
if (status !== 'FINISH') {
timer = setTimeout(() => {
dispatch(getData(props.id));
}, 500);
}
return () => {
if (status === 'FINISH') {
clearTimeout(timer);
}
}
}, [ dispatch, status, props ])
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.production.min.js"></script>
【问题讨论】: