react reactjs url react-router react-router-v4

reactjs - El enrutador React 4 no actualiza la vista en el enlace, pero lo hace en la actualización



react router dom redirect (4)

Estoy usando el siguiente código de navegación simple

<Router> <Switch> <Route exact path=''/dashboard'' component={Dashboard} /> <Route path=''/dashboard/accounts'' component={AccountPage} /> </Switch> </Router> <NavLink exact to={''/dashboard''} disabled={this.props.item.disabled} activeClassName=''active''> <NavLink exact to={''/dashboard/accounts''} disabled={this.props.item.disabled} activeClassName=''active''>

La URL cambia pero la vista no. Sin embargo, sí cambia cuando actualizo la página o voy manualmente a esa URL.


Esto se debe a que el método de connect react-redux implementa shouldComponentUpdate que hará que el componente no se renderice cuando los props no cambian. Y esto está en conflicto ahora con reaccion-router 4.

Para evitarlo, puede pasar {pure: false} a la connect como se describe en la sección de resolución de problemas de react-redux .

Otra forma es usar el HOC de withRouter o aprobar la location como se describe en DOCS .


Me he encontrado con este problema. Lo resuelvo agregando la clave de atributo al componente Switch con valor es una ruta de ubicación y búsqueda de ubicación.


También puede utilizar el:

import { withRouter } from ''react-router-dom'';

Y luego en tu exportación predeterminada, te gusta esto:

export default withRouter(connect(mapStateToProps, {})(Layout));

Porque cuando tiene una conexión de exportación, debe indicar que ese componente usará el enrutador.


Tenía mis enlaces de navegación en un componente sin estado (o componente tonto) y un contenedor para controlar el estado de colapso de mi barra de navegación.

después de cambiar el contenedor de la PureComponent de PureComponent de PureComponent a Component me solucionó el problema.