Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs React router OnNet选项与组件生命周期方法对比,检查授权用户_Reactjs_React Router_Browser History - Fatal编程技术网

Reactjs React router OnNet选项与组件生命周期方法对比,检查授权用户

Reactjs React router OnNet选项与组件生命周期方法对比,检查授权用户,reactjs,react-router,browser-history,Reactjs,React Router,Browser History,哪个更好 我尝试了一条路径,但这会导致路径之间的闪烁。加载组件之前,已运行onEnter检查。它路由,然后在用户通过身份验证后重新路由,这在视觉上是不允许的。现在我只是使用Maincomponent的componentWillMountlifecycle来运行授权代码,并在解决问题时重新路由,否则就留在那里。若我只使用生命周期方法进行检查,那个么我就不能使用react路由器的链接组件。关于如何在没有糟糕的ui的情况下解决闪烁或提高客户端安全性的任何想法 首先,您应该在componentDidMo

哪个更好


我尝试了一条路径,但这会导致路径之间的闪烁。加载组件之前,已运行
onEnter
检查。它路由,然后在用户通过身份验证后重新路由,这在视觉上是不允许的。现在我只是使用
Main
component的
componentWillMount
lifecycle来运行授权代码,并在解决问题时重新路由,否则就留在那里。若我只使用生命周期方法进行检查,那个么我就不能使用react路由器的
链接
组件。关于如何在没有糟糕的ui的情况下解决闪烁或提高客户端安全性的任何想法

首先,您应该在componentDidMount而不是componentWillMount中执行此操作,因为如果此过程需要一些时间,它可能会冻结整个应用程序

至于您的问题,您可以签入tje componentDidMount,然后使用react router的browserHistory手动推送url

查看react router的历史文档:

您能发布一个代码示例吗?在我的情况下,如果我使用OneNet,则不会调用任何生命周期方法。如果我错了,请纠正我,但我似乎应该在Enter上使用react router for tags,因为这不会重新提交主组件。只需将url推送到browserHistory,这是相同的,但您不能在lifecycle事件上使用链接,因为它是一个组件,所以只需手动执行即可