reactjs 如何在nextjs类组件中编程地路由到或导航到路由?

8e2ybdfx  于 2022-12-29  发布在  React
关注(0)|答案(2)|浏览(170)

我正在使用NextJS构建一个简单的应用程序。我的大多数组件都是功能组件。然而,我有一个类组件来处理表单。
我想在提交表单后重定向到主页。console.log(this.router)给出了undefined。因为它是一个类组件,我不能使用useRouter()钩子。我如何在next.js中的类组件中获得对路由器的引用?

z9smfwbn

z9smfwbn1#

最后我得到了答案,

import Router from 'next/router'

并使用Router.push(...)
从Next 13开始,从next/navigation导入路由器

disho6za

disho6za2#

作为直接使用next/router默认导出的替代方法,withRouter HOC还可以将路由器对象添加到任何组件。

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)

相关问题