我安装了react-router-dom v6,我想使用一个基于类的组件,在以前版本的react-router-dom v5 this.props.history()
工作的重定向页面后,做了一些事情,但这个代码不工作的v6。
在react-router-dom v6中有一个用于功能组件的钩子useNavigate
,但我需要在类基础组件中使用它,请帮助我如何在类组件中使用导航?
我安装了react-router-dom v6,我想使用一个基于类的组件,在以前版本的react-router-dom v5 this.props.history()
工作的重定向页面后,做了一些事情,但这个代码不工作的v6。
在react-router-dom v6中有一个用于功能组件的钩子useNavigate
,但我需要在类基础组件中使用它,请帮助我如何在类组件中使用导航?
7条答案
按热度按时间aoyhnmkz1#
在react-router-dom v6中,对历史记录的支持已经过时,但取而代之的是引入了导航功能。如果您想在特定事件成功时将用户重定向到特定页面,请按照以下步骤操作:
创建一个名为
withRouter.js
的文件,并将下面给出的代码粘贴到此文件中:现在,在任何一个基于类的组件中,您想要将用户重定向到特定路径/组件,请导入上面的
withRouter.js
文件,并使用this.props.navigate('/your_path_here')
函数进行重定向。为了帮助您,下面给出了一个显示相同内容的示例代码:
以上代码工作完美。这只是一个小的扩展。如果你想要onclick函数这里是代码:
4xrmg8kj2#
在重定向用户基本类组件中,执行以下步骤:首先导入一些组件,如下所示
现在为Return创建一个布尔值状态,如下所示:
现在将Navigate组件插入到组件树的底部,但使用&&进行条件渲染,如下所示:
现在,当你想要重定向用户到某个页面时,只需在你想要的一行代码上制作真正的重定向状态,现在你可以看到你导航到了某个页面:)
pes8fvy93#
试试这个:
在我的例子中,使用了这个函数:
我在https://www.reactfix.com/2022/02/fixed-how-can-i-use-withrouter-in-react.html找到了这个解决方案
另一种解决方案是使用导航,例如:
ubbxdtey4#
在react类组件中使用****。来自react路由器文档:
元素在呈现时会改变当前位置,它是useNavigate的组件 Package 器,接受所有与props相同的参数。
wr98u20j5#
尝试创建一个可重用的功能组件,比如一个简单的按钮,您可以在类组件中使用它。
在这之后,你就可以在你的任何一个类组件中使用
NavigateButton
了。ldfqzlk86#
在GitHub react-router问题线程中找到了此解释,它解释了如何使用带有类组件https://github.com/remix-run/react-router/issues/8146的react-router 6
我从上面的问题说明中获得此代码
mwecs4sa7#
下面是我的解决方案: