JIYIK CN >

Current Location:Home > Learning > WEB FRONT-END > React >

Get URL parameter values from query string in React

Author:JIYIK Last Updated:2025/03/03 Views:

Throughout the process of creating a React application, you may occasionally need to extract a parameter value from a query string. This will allow you to reference the value throughout your application parameter.

With the release of React Router v4 in 2017, the parsed this.props.location.queryattribute was removed. Developers had to find a new way to read parameter values ​​from the query string. In this article, we’ll look at the solution for both old and new versions of React.

Extracting parameter values ​​from strings in React Router v3 queryis easy. This version of React does all the work for you and provides the parsed location as a prop. If you inspect the value of the following object:

this.props.location.query

You will find that it contains 键-值pairs for all the parameters in the query. (The query is ?the part of the URL after the ampersand)

If querythe object does not contain the parameter you are looking for, then you should also look at paththe parameter values, which are accessible at:

this.props.match.params.redirectParam

As long as you're running an app with React Router v3 installed, your components will accept and you can get parameter values props​​from querystrings and .path

Starting with v4, this.props.location.querythe object was removed. The main reason for removing it was to allow developers to create unique ways to store querystrings.

React Router v4 queriesstill has access to String , but developers have to convert it to a string themselves. Libraries like String qsand query-stringString were created to solve this exact problem.

In newer React Router versions, you can use the updated interface and query-stringlibrary to resolve your queryobjects.

const queryToStr = require('query-string');
const result = queryToStr.parse(this.props.location.search);

The above example works well with class components in React.

Using the library to parse this.props.location.searcha can return a parsed queryobject with 键-值pairs of arguments and their values.

Over the past few years, the React community has started to move away from class components in favor of functional components. The main reason behind the switch is the new ability of functional components to use React hooks.

queryWhen extracting parameter values ​​from a string, do not use this.props.location.searchthe value of , but instead use useLocation()an instance of the hook.

The hook does not return a resolved queryobject. You still need to parse the hook instance to get access 键-值to the arguments and their values.

If you're running your application with v4 (or higher) of React-Router, the following code should give you the desired results:

const queryToStr = require('query-string');
const result = queryToStr.parse(useLocation().search);

Thanks to useLocation()hooks, this code looks much cleaner.

For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.

Article URL:

Related Articles

React Tutorial - Transferring Props

Publish Date:2025/03/16 Views:188 Category:React

React transfers Props. Props are generated when components are encapsulated. Components expose some properties (Props) to the outside world to complete some functions.

React Tutorial: Props Anti-Pattern

Publish Date:2025/03/16 Views:187 Category:React

React's Props anti-pattern, using Props to generate state in getInitialState is an anti-pattern - Anti-Pattern.

React Tutorial - Props Validation

Publish Date:2025/03/16 Views:102 Category:React

Props validation is a very useful way to use components correctly. It can avoid many bugs and problems as your application becomes more and more complex. In addition, it can make your program more readable.

Why do you need to bind event handlers in React Class Components?

Publish Date:2025/03/16 Views:60 Category:React

When using React, we must have come across control components and event handlers. We need to use `.bind()` in the constructor of the custom component to bind these methods to the component instance. As shown in the following code:

Solution to the error "does not contain a default export" in React

Publish Date:2025/03/16 Views:191 Category:React

When we try to use `default import` to import from a module that does not have a `default export`, we get a "does not contain a default export" error. To fix the error, make sure the module has named exports and wrap the import in curly braces, e.g.

Solve the Module not found: Can't resolve 'react-bootstrap' error

Publish Date:2025/03/16 Views:90 Category:React

To resolve the error "Module not found: Error: Can't resolve 'react-bootstrap'", make sure to install the react-bootstrap package by opening a terminal in the root directory of the project and running the command `npm install react-bootstrap bootstrap

Scan to Read All Tech Tutorials

Social Media
  • https://www.github.com/onmpw
  • qq:1244347461

Recommended

Tags

Scan the Code
Easier Access Tutorial