我安装了react-router-dom v6,我想使用一个基于类的组件,在之前版本的react-router-dom v5this.props.history()
在做某事后适用于重定向页面,但此代码不适用于v6。
在react-router-dom v6中,函数组件有一个钩子useNavigate
,但我需要在类基础组件中使用它,请帮助我如何在类组件中使用导航?
在 react 类组件中使用
一个
在类基组件中重定向用户按照此步骤操作:首先导入一些像这样的组件
import { Navigate } from "react-router-dom"
现在为返回布尔值设置一个状态,如下所示:
state = {
redirect:false
}
现在将Naviagate组件插入到组件树的底部,但是使用
{
this.state.redirect && <Navigate to='/some_route' replace={true}/>
}
现在,当您想将用户重定向到某个页面时,只需在您想要的一行代码上进行真正的重定向状态,现在您可以看到您导航到某个页面:)
在react router dom v6中,不推荐使用对历史的支持,但引入了导航。如果要在特定事件成功后将用户重定向到特定页面,请执行以下步骤:
创建一个名为 withRouter.js
的文件,并将下面给出的代码粘贴到此文件中:
import { useNavigate } from 'react-router-dom';
export const withRouter = (Component) => {
const Wrapper = (props) => {
const navigate = useNavigate();
return (
<Component
navigate={navigate}
{...props}
/>
);
};
return Wrapper;
};
现在,在任何基于类的组件中,您都希望将用户重定向到特定的路径/组件,导入上面的withRouter.js
文件,并使用this.props.navigate('/your_path_here')
函数进行重定向。
为了您的帮助,下面给出了显示相同内容的示例代码:
import React from 'react';
import {withRouter} from '.your_Path_To_Withrouter_Here/withRouter';
class Your_Component_Name_Here extends React.Component{
constructor(){
super()
this.yourFunctionHere=this.yourFunctionHere.bind(this);
}
yourFunctionHere()
{
this.props.navigate('/your_path_here')
}
render()
{
return(
<div>
Your Component Code Here
</div>
)
}
}
export default withRouter(Your_Component_Name_Here);
上面的代码工作得非常完美。这只是一个小小的扩展。如果您需要onclick函数,下面是代码:
<div className = "row">
<button className= "btn btn-primary"
onClick={this.yourFunctionHere}>RedirectTo</button>
</div>
问题内容: 使用此样板作为参考,我创建了一个Electron应用程序。它使用webpack捆绑脚本并通过Express Server托管脚本。 的WebPack配置是实质上相同的这个和服务器这样。 Electron的脚本加载: 然后index.html加载服务器托管的脚本: 我运行以构建应用程序并启动服务器,该服务器使用webpack将脚本捆绑在一起。 它工作正常,我的React组件App已安装。
我试图路由到一个类组件,但它给我一个错误。当我将组件更改为功能性组件时,路由就开始工作了。如何路由到类组件? 我刚开始使用React-Router。我首先有一个要路由到的功能组件。但是一旦我意识到组件需要是一个类,我就把它更改为一个类,现在路由显示 “无法获取/探索/单词”。
看这段视频,react路由器似乎很容易使用,但我找不到如何在我的代码中导航,因为我想在单击div时链接,而不是使用
问题内容: 我想将CSS文件导入React组件。 我已经尝试过,但是下面出现错误; 找不到模块:错误:无法解析c:\ Users \ User \ User \ Documents \ pizza-app \ client \ src \ components @中的“文件”或“目录” ../../../public/styles/disabledLink。 /client/src/compone
本文向大家介绍React-Router 4中` `组件有几种类型?相关面试题,主要包含被问及React-Router 4中` `组件有几种类型?时的应答技巧和注意事项,需要的朋友参考一下 HashRouter:老浏览器的history,主要通过hash来实现,对应 BrowserRouter:高版本浏览器,通过html5里面的history,对应 **MemeoryRouter:**node环境下
问题内容: 我在玩和使用和。我想在不同的文件中构建多个组件,将其导入单个文件并将其捆绑在一起 假设我有几个这样的组件: my-navbar.jsx main-page.jsx 使用webpack并按照其教程进行操作,我有: 构建项目并运行它之后,在浏览器控制台中出现以下错误: 我究竟做错了什么?如何正确导入和导出组件? 问题答案: 尝试 默认设置 组件中的导出: 通过使用默认值,您表示将成为该模块