React Router 5.1.0 uses useHistory to implement page jump navigation

React Router 5.1.0 uses useHistory to implement page jump navigation

In React Router v4 you can use

  1. withRouter Component
  2. Use Tags

1. Use the withRouter component

The withRouter component will inject the history object as a property of the component

import React from 'react'
import { withRouter } from 'react-router-dom'
import { Button } from 'antd'

export const ButtonWithRouter = withRouter(({ history }) => {
  console.log('history', history)
  return (
    <Button
      type='default'
      onClick={() => { history.push('/new-location') }}
    >
      Click Me!
    </Button>

  )
})

image.jpg

import { ButtonWithRouter } from './buttonWithRouter'

or:

const ButtonWithRouter = (props) => {
  console.log('props', props)
  return (
    <Button
      type='default'
      onClick={() => { props.history.location.push('/new-location') }}
    >
      Click Me!
    </Button>

  )
}

export default withRouter(ButtonWithRouter)

image.jpg

Import: import ButtonWithRouter from './buttonWithRouter'

2. Use Route Tags

At the route entrance

image.jpg

The Route component is not only used for matching locations. You can render a route without a path and it will always match the current location. The Route component passes the same properties as withRouter, so the history methods can be accessed through the history properties.

so:

export const ButtonWithRouter = () => (
  <Route render={({ history }) => {
    console.log('history', history)
    return (
      <button
        type='button'
        onClick={() => { history.push('/new-location') }}
      >
        Click Me!
      </button>
    )
  }} />
) 

image.jpg

React Router 5.1.0 uses useHistory

Starting from React Router v5.1.0, the useHistory hook has been added. If you are using React >16.8.0, you can use useHistory to achieve page jump

export const ButtonWithRouter = () => {
  const history = useHistory();
  console.log('history', history)
  return (
    <button
      type='button'
      onClick={() => { history.push('/new-location') }}
    >
      Click Me!
    </button>
  )
}

image.jpg

This is the end of this article about the implementation of page jump navigation using useHistory in React Router 5.1.0. For more relevant ReactRouter useHistory page jump navigation content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • An example of implementing a breadcrumb navigation using React high-order components
  • React Navigation for Android Development Navigation Bar Style Adjustment + Bottom Corner Message Prompt
  • React Native react-navigation navigation usage details
  • Detailed explanation of cross-tab routing processing in React Native using react-navigation
  • Detailed explanation of React Native top and bottom navigation usage tips
  • React-native example of using react-navigation for page jump navigation
  • React realizes secondary linkage of navigation bar

<<:  Flash embedded in HTML Solution for embedding Flash files in HTML web page code (Part 1)

>>:  MySQL uses events to complete scheduled tasks

Recommend

MySQL aggregate function sorting

Table of contents MySQL result sorting - Aggregat...

Various ways to modify the background image color using CSS3

CSS3 can change the color of pictures. From now o...

How to modify the location of data files in CentOS6.7 mysql5.6.33

Problem: The partition where MySQL stores data fi...

js canvas to realize the Gobang game

This article shares the specific code of the canv...

Introduction to Docker containers

Docker Overview Docker is an open source software...

How to install Nginx in a specified location in Centos system

How to install Nginx in a specified location in C...

The difference between Div and table in HTML (discussed in detail in all aspects)

1: Differences in speed and loading methods The di...

Steps for docker container exit error code

Sometimes some docker containers exit after a per...

In-depth understanding of JavaScript callback functions

Table of contents Preface Quick Review: JavaScrip...

How to use IDEA to configure tomcat and create JSP files

Before using idea to write JSP files, you need to...

Installation tutorial of MySQL 5.7.17 zip package version under win10

The installation tutorial of mysql5.7.17 is share...

Example of implementing load balancing with Nginx+SpringBoot

Introduction to Load Balancing Before introducing...

Time zone issues with Django deployed in Docker container

Table of contents Time zone configuration in Djan...