我想发送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,该页面上显示)
答案 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'}
/>
)
}