Get URL parameter values from query string in React
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.query
attribute 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 query
is 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 query
the object does not contain the parameter you are looking for, then you should also look at path
the 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 query
strings and .path
Starting with v4, this.props.location.query
the object was removed. The main reason for removing it was to allow developers to create unique ways to store query
strings.
React Router v4 queries
still has access to String , but developers have to convert it to a string themselves. Libraries like String qs
and query-string
String were created to solve this exact problem.
In newer React Router versions, you can use the updated interface and query-string
library to resolve your query
objects.
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.search
a can return a parsed query
object 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.
query
When extracting parameter values from a string, do not use this.props.location.search
the value of , but instead use useLocation()
an instance of the hook.
The hook does not return a resolved query
object. 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.
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.
React tutorial: Types of Props for child components
Publish Date:2025/03/16 Views:172 Category:React
-
Usually, the child components of a React component are a group, that is, the child components are an array. Introduction to Type of the Children Props.
How to solve the error Uncaught TypeError: Cannot read properties of undefined in
Publish Date:2025/03/16 Views:153 Category:React
-
In the process of React development, we often encounter some errors. Here we look at an error reported in App.js. The error is as follows: App.js:69 Uncaught TypeError: Cannot read properties of undefined (reading 'setState') at onInput
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.
Error in React: Attempted import error 'X' is not exported from Solution
Publish Date:2025/03/16 Views:78 Category:React
-
In React, the error “Attempted import error 'X' is not exported from” in React.js occurs when we try to import a named import that does not exist in the specified file. To fix the error, make sure the module has named exports and you have not obfu
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