Reactjs 为什么受保护的路由器在声明中没有被识别,即使它是真的

Reactjs 为什么受保护的路由器在声明中没有被识别,即使它是真的,reactjs,react-router,Reactjs,React Router,目前,我正在尝试保护路由器,以便用户只能在填写注册表之前访问该页面。基于这种情况,它应该将他们重定向到页面,看看他们是否有获胜的促销代码。但即使ProtectRouter.completeCheckProtect()为false,用户仍会被重定向到页面,这不是我在本例中想要的预期结果。有人能调查一下并进一步帮助我吗 从“React”导入React; 从“react router dom”导入{Redirect}; 从“./ProtectRouter”导入ProtectRouter; 类。组件

目前,我正在尝试保护路由器,以便用户只能在填写注册表之前访问该页面。基于这种情况,它应该将他们重定向到页面,看看他们是否有获胜的促销代码。但即使ProtectRouter.completeCheckProtect()为false,用户仍会被重定向到页面,这不是我在本例中想要的预期结果。有人能调查一下并进一步帮助我吗

从“React”导入React;
从“react router dom”导入{Redirect};
从“./ProtectRouter”导入ProtectRouter;
类。组件{
render(){
让测试=()=>{
ProtectRouter.locked(()=>{
console.log(ProtectRouter.completeCheckProtect())
});
}
让我们回家=()=>{
ProtectRouter.locked(()=>{
window.location.href=window.location.origin;
});
};
//console.log(ProtectRouter.completeCheckProtect())返回true,但在if-else语句中无法识别它。。。。
if(ProtectRouter.completeCheckProtect()){
返回(
你输了
测试
家
)
}否则{
返回(
)
}
}
}
出口违约损失;
类保护路由器{
构造函数(){
this.checkProtect=false;
}
解锁(cb){
this.checkProtect=true;
控制台日志(“解锁”);
cb();
}
锁定(cb){
this.checkProtect=false;
控制台日志(“锁定”);
cb();
}
completeCheckProtect(){
返回此文件。检查保护;
}
}
console.log('正在加载')

导出默认的新ProtectRouter()
codesandbox.io或codepen中是否可以组合一个示例?请检查添加的代码段