每几秒钟获取一次请求

时间:2020-07-20 03:43:02

标签: javascript reactjs setinterval

我想发送GET请求,并使用我收到的json值,如果其中包含的状态为true,那么我想重定向到另一个页面。

我还想在5秒钟,10秒钟,11秒钟之后发送api请求,然后继续直到未收到状态为true为止。

我的尝试:

  async function getStatus() {
json = await `GET API REQUEST SENT`;
if (json.status === true) {
  clearInterval(statusApi);
}


}

let time = 0;

statusApi = setInterval(() => {
  getStatus();
  time += 5000;
}, time);

if (json.status === true) {
  return (
    <Redirect
      to={'/forward'}
    />
  );
}

这里的问题是它不会重定向到另一个页面。

当返回时,页面上也不会显示任何内容(此代码返回后将写为nect,该页面上显示)

2 个答案:

答案 0 :(得分:0)

每当您要重定向到另一个路径时,都可以简单地更改状态以重新呈现组件,从而呈现组件。

this.setState({ redirect: "/someRoute" })

https://dev.to/projectescape/programmatic-navigation-in-react-3p1l

答案 1 :(得分:0)

只需在组件中添加一个状态,然后根据该状态添加重定向标签即可。

const Comp = () => {
    const [doRedirect, setDoRedirect] = React.useState(false)
    return (
        doRedirect && <Redirect
        to={'/forward'}
      />
    )
}
相关问题