我正在使用NextJS构建一个简单的应用程序。我的大多数组件都是功能组件。然而,我有一个类组件来处理表单。我想在提交表单后重定向到主页。console.log(this.router)给出了undefined。因为它是一个类组件,我不能使用useRouter()钩子。我如何在next.js中的类组件中获得对路由器的引用?
console.log(this.router)
useRouter()
z9smfwbn1#
最后我得到了答案,
import Router from 'next/router'
并使用Router.push(...)从Next 13开始,从next/navigation导入路由器
Router.push(...)
next/navigation
disho6za2#
作为直接使用next/router默认导出的替代方法,withRouter HOC还可以将路由器对象添加到任何组件。
next/router
withRouter
import * as React from 'react' import { withRouter } from 'next/router' class Page extends React.Component { render() { const { router } = this.props return <p>{router.pathname}</p> } } export default withRouter(Page)
2条答案
按热度按时间z9smfwbn1#
最后我得到了答案,
并使用
Router.push(...)
从Next 13开始,从
next/navigation
导入路由器disho6za2#
作为直接使用
next/router
默认导出的替代方法,withRouter
HOC还可以将路由器对象添加到任何组件。