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

Introduction to the use of select optgroup tag in html

Occasionally, I need to group select contents. In ...

Solution to overflow:hidden failure in CSS

Cause of failure Today, when I was writing a caro...

How to connect XShell and network configuration in CentOS7

1. Linux network configuration Before configuring...

Specific use of the wx.getUserProfile interface in the applet

Recently, WeChat Mini Program has proposed adjust...

js to achieve simple drag effect

This article shares the specific code of js to ac...

Sample code for implementing a background gradient button using div+css3

As the demand for front-end pages continues to in...

Vue Router loads different components according to background data

Table of contents Requirements encountered in act...

Docker build PHP environment tutorial detailed explanation

Docker installation Use the official installation...

HTML Code Writing Guide

Common Convention Tags Self-closing tags, no need...

A detailed introduction to setting up Jenkins on Tencent Cloud Server

Table of contents 1. Connect to Tencent Cloud Ser...

CentOS method to modify the default ssh port number example

The default ssh port number of Linux servers is g...