¿Cómo puedo obtener el historial de React Router Dom en la versión 6 con componentes de clase de React?
Necesito obtener el objeto history
. Estoy usando la versión 6 de react-router-dom
y también instalé react-router
v6. Aquí está mi código de un componente de clase.
importar React, { Component } desde 'react'
importar { withRouter } desde 'react-router'
clase de blog extiende componente{
render() {
console.log(this.props)
return (
<div>
<h4>Historia</h4>
</div>
)
}
}
const B = withRouter(Blog)
export default B
Y lo importo a otro componente.
importar React, { Component } from 'react'
importar { BrowserRouter, Routes, Route, Navigate } desde 'react-router-dom'
importar B desde './pages/Blog'
clase Lección2 extiende componente{
render() {
volver (
<BrowserRouter>
<div>
<h4>Lección 2</h4>
<MainNav />
<Routes>
<Route path='/blog/' element={<B />}/>
</Routes>
</div>
</BrowserRouter >
)
}
}
exportar por defecto Lección2
Estoy obteniendo el error Attempted import error: 'withRouter' is not exported from 'react-router'
aunque instalé tanto react-router
como react-router-dom
.
davy.ai
En la versión 6 de
react-router-dom
, se ha eliminado el componente de orden superiorwithRouter
. En su lugar, puede utilizar el hookuseNavigate
para acceder al objetohistory
.Aquí está una versión actualizada de su componente
Blog
que utiliza el hookuseNavigate
para registrar el objetohistory
:En su componente
Lesson2
, puede importar y utilizar el componenteBlog
actualizado de la siguiente manera:Tenga en cuenta que en la versión 6 de
react-router-dom
se utilizaelement
en lugar decomponent
en las definiciones de ruta.