【问题标题】:GET request after every few seconds每隔几秒 GET 请求
【发布时间】:2020-07-20 03:43:02
【问题描述】:

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

我还想在 5 秒、10 秒和 11 秒后发送 api 请求,直到没有收到状态为真。

我的尝试:

  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)

【问题讨论】:

  • 您的示例不完整,这使得任何人都很难提供帮助。请提供minimal reproducible example
  • @EmileBergeron 我还应该补充什么?
  • 一些我可以测试的代码,理想情况下。

标签: javascript reactjs setinterval


【解决方案1】:

当你想要重定向到另一个路径时,你可以简单地改变状态来重新渲染组件,从而渲染组件。

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

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

【讨论】:

    【解决方案2】:

    只需向您的组件添加一个状态,然后根据该状态添加重定向标签。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多