Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 回应:文件及;重定向vs.history.push()_Javascript_Reactjs - Fatal编程技术网

Javascript 回应:文件及;重定向vs.history.push()

Javascript 回应:文件及;重定向vs.history.push(),javascript,reactjs,Javascript,Reactjs,我试着阅读之前的答案,但不幸的是,他们只提出了更多的问题。 在react路由器文档中 在注销后的第124行上,他们使用history.push(“/”) 历史的目的是什么?这里为什么不使用重定向?< p> 重定向< /C> >更多的是在某些逻辑存在或不存在的情况下呈现的一个组件,考虑下面的例子,当你在路由上有一些逻辑并且想要做条件重定向时,它通常被使用。 类似地,当您有一些事件触发的操作时,您可以使用history.push,比如您单击按钮,这反过来会进行一些验证,然后可能会根据您的业务逻辑重新

我试着阅读之前的答案,但不幸的是,他们只提出了更多的问题。 在react路由器文档中 在注销后的第124行上,他们使用history.push(“/”)


历史的目的是什么?这里为什么不使用重定向?

< p> <代码>重定向< /C> >更多的是在某些逻辑存在或不存在的情况下呈现的一个组件,考虑下面的例子,当你在路由上有一些逻辑并且想要做条件重定向时,它通常被使用。 类似地,当您有一些事件触发的操作时,您可以使用
history.push
,比如您单击按钮,这反过来会进行一些验证,然后可能会根据您的业务逻辑重新指导您

我已经为这两种情况给出了例子,希望能有所帮助

const Admin=()=>{
const[isInvalidUser,setUserInvalid]=useState(false);
useffect(()=>{
//通过API调用检查用户是否有效
setUserInvalid(true);
}, [])
//这里以重定向的形式返回一个组件
//这在您打开特定路由时自动执行,不会触发事件
如果(isInvalidUser){
返回;
}
返回;
}
const Login=()=>{
常量handleLogin=()=>{
//验证登录的业务逻辑
if(validUser){
//这里不能有带有重定向的return语句,因为这是一个处理程序
历史推送(“/主页”);
}
}
//假设您有用户名和密码的状态
返回(
提交
);
}

根据您的用例和方法,您可以使用任何您需要的工具。

谢谢!这是第一个真正有意义的答案。没问题,如果答案有意义的话,你可以投上一票:)