The solution to the page not refreshing after the route changes after react jumps

The solution to the page not refreshing after the route changes after react jumps

question

There seem to be many reasons for this problem. My problem is that the URL with parameters cannot be refreshed. In router 5.0 version, using the withRouter associated component to jump to the page is as follows

insert image description here

Routing Code

insert image description here

Solution

Adding a key to the top-level element of the routing component increases the recognition of the route, because ordinary jumps are identified based on the path, but when the path carries parameters, the route cannot be accurately identified. However, when jumping to a page, a key will be added to the localtion object for each address. Print as follows

 // Component mounting componentDidMount() {
    console.log(this.props.location);
  }

insert image description here

We can accurately locate the route by binding this key to the top-level element of the route.

 render() {
    return (
      {/*This is the key*/}
      <div key={this.props.location.key}>
          <Switch>
            <Route exact path="/" component={Home} />
            <Route exact path="/products/:id" component={Products} />
            <Route exact path="/about" component={About} />
            <Route exact path="/solution" component={Solution} />
            <Route
              exact
              path="/solutionDetails/:id"
              component={SolutionDetails}
            />
            <Route exact path="/download" component={Download} />
            <Route path="/about" component={Download} />
            <Route exact path="/details/:id" component={Details} />
            <Route path="/contact" component={Contact} />
            <Route component={ErrorPage} />
          </Switch>
      </div>
    );
  }

However, you may find that this.props is an empty object {}. That may be because you did not use withRouter to associate the component. Just associate it. Note that app.js cannot be associated, withrouter can only be associated with routing components or subcomponents of app.js

import React, { Component } from "react";
import { withRouter } from "react-router";

class routers extends Component {
 /**
  * Life cycle function */
 // Component mounting componentDidMount() {
   console.log(this.props.location);
 }
 render() {
   return (
     <div key={this.props.location.key}>
     </div>
   );
 }
}
export default withRouter(routers);

This is the end of this article about the solution to the problem that the page does not refresh after the route changes after react jumps. For more related content about the page not refreshing after react jumps, please search for previous articles on 123WORDPRESS.COM or continue to browse the related articles below. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Detailed explanation of the solution to the problem that the page does not refresh when the Url parameter changes in React-Router
  • Solution to the 404 problem of react-router browserHistory refresh page

<<:  Data Structure - Tree (III): Multi-way Search Tree B-tree, B+ tree

>>:  Detailed explanation of MySQL from getting started to giving up - installation

Recommend

An example of using Lvs+Nginx cluster to build a high-concurrency architecture

Table of contents 1. Lvs Introduction 2. Lvs load...

Detailed explanation of Linux inotify real-time backup implementation method

Real-time replication is the most important way t...

vue+rem custom carousel effect

The implementation of custom carousel chart using...

A brief discussion on the VUE uni-app development environment

Table of contents 1. Through HBuilderX visual int...

MySQL trigger syntax and application examples

This article uses examples to illustrate the synt...

How to view the status of remote server files in Linux

As shown below: The test command determines wheth...

Detailed tutorial on installing Docker on CentOS 8.4

Table of contents Preface: System Requirements: I...

Vue implements real-time refresh of the time display in the upper right corner

This article example shares the specific code of ...

Solution to MySQL failure to start

Solution to MySQL failure to start MySQL cannot s...

Vue realizes the palace grid rotation lottery

Vue implements the palace grid rotation lottery (...

Detailed explanation of the usage of setUp and reactive functions in vue3

1. When to execute setUp We all know that vue3 ca...

A set of code based on Vue-cli supports multiple projects

Table of contents Application Scenario Ideas Proj...