Dynamic Dependent Dropdown in React JS

In React JS, you can create a dynamic dependent dropdown using the react-select library. This library provides a set of components that allow you to create a dynamic, customizable dropdown menu. The library provides a set of components that allow you to create a dynamic, customizable dropdown menu. The library also provides a way to create a custom dropdown component that can be used to create a dynamic dependent dropdown.

To create a dynamic dependent dropdown, you will need to create two components: a parent component and a child component. The parent component will be responsible for fetching the data from the API and passing it to the child component. The child component will then use the data to create the dropdown menu.

To create the parent component, you will need to use the useState hook to store the data from the API. You will also need to use the useEffect hook to fetch the data from the API. Once the data is fetched, you can pass it to the child component.

To create the child component, you will need to use the react-select library. This library provides a set of components that allow you to create a dynamic, customizable dropdown menu. You will need to create a custom dropdown component that will take the data from the parent component and use it to create the dropdown menu.

Once the components are created, you can use them to create a dynamic dependent dropdown. The parent component will fetch the data from the API and pass it to the child component. The child component will then use the data to create the dropdown menu.

cascading dropdown in react js; Through this tutorial, you will learn how to create a cascading dropdown or dependent country state city dropdown list in React JS using Web/REST APIS.

Cascading dropdowns in React JS is a powerful way to handle complex user input scenarios. It allows developers to create a hierarchical relationship between dropdown menus, where the options in the second dropdown are dependent on the selected value in the first dropdown.

For example, if a user selects a country in the first dropdown, the second dropdown menu will populate with the list of cities available in the selected country. This type of dynamic interaction between dropdowns makes the user experience more intuitive and streamlined, reducing the number of input errors and simplifying the overall user flow.

Cascading dropdowns in React JS can be implemented using a variety of techniques, such as state management libraries like Redux, or by using React hooks like useState and useEffect. Overall, cascading dropdowns are an essential tool for building sophisticated and responsive web applications in React JS.

In this populate dropdown based on another dropdown+react will show you how to create a dynamic cascading dependent country, state, city dropdown list using react js with the web apis.

Country State City Cascading Dependent Dropdown in React JS

Follow the below steps to implement dynamic cascading country state city dependent dropdown in react js using REST APIs:

  • Step 1 – Create React App
  • Step 2 – Install Axios and Bootstrap 4
  • Step 3 – Create Cascading Dropdown Component
  • Step 4 – Import Component in App.js
  • Step 5 – Add Css

Step 1 – Create React App

Open your terminal and execute the following command on your terminal to create a new react app:

npx create-react-app my-react-app

To run the React app, execute the following command on your terminal:

npm start

Check out your React app on this URL: localhost:3000

Step 2 – Install Axios and Bootstrap 4

Then execute the following command to install axios and boostrap 4 library into your react app:

npm install bootstrap --save

npm install axios --save

And import bootstrap.min.css file in src/App.js.

Step 3 – Create Cascading Dropdown Component

visit the src directory of your react js app and create a cascading dependent dropdown component; which is named Cascading.js. And add the following code into it:

import React, {Component } from 'react'
import axios from 'axios';
import ReactHTMLTableToExcel from 'react-html-table-to-excel';
import './App.css';
export class CascadingDropdown extends Component {
constructor(props) {
super(props)
this.state = {
StateId: '',
CountryId: '',
CountryData: [],
StateData: [],
CityData: []
}
}
componentDidMount() {
axios.get('http://localhost:3000/countries-list').then(response => {
console.log(response.data);
this.setState({
CountryData: response.data
});
});
}
ChangeteState = (e) => {
this.setState({
CountryId: e.target.value
});
axios.get('http://localhost:3000/get-states-by-country?CountryId=' + e.target.value).then(response => {
console.log(response.data);
this.setState({
StateData: response.data,
});
});
}
ChangeCity = (e) => {
this.setState({
StateId: e.target.value
});
axios.get('http://localhost:65173/get-cities-by-state?StateId=' + e.target.value).then(response => {
console.log(response.data);
this.setState({
CityData: response.data
});
});
}
render() {  
return (  
<div>  
<div class="row" className="hdr">  
<div class="col-sm-12 btn btn-info">  
Cascading Dropdown in ReactJS  
</div>  
</div>  
<div className="form-group dropdn">  
<select className="form-control" name="country" value={this.state.CountryId} onChange={this.ChangeteState}  >  
<option>Select Country</option>  
{this.state.CountryData.map((e, key) => {  
return <option key={key} value={e.CountryId}>{e.CountryName}</option>;  
})}  
</select>  
<select className="form-control slct" name="state" value={this.state.StateId} onChange={this.ChangeCity} >  
<label for="company">State Name</label>    
{this.state.StateData.map((e, key) => {  
return <option key={key} value={e.StateId}>{e.StateName}</option>;  
})}  
</select>  
<select className="form-control slct" name="city" value={this.state.CityData}  >  
{this.state.CityData.map((e, key) => {  
return <option key={key} value={e.CityId}>{e.cityName}</option>;  
})}  
</select>  
</div>  
</div>  
)  
}  
}  
export default CascadingDropdown  

Here is a breakdown of the above given code:

  • The first line imports two things: the React library and the Component class from React.
  • The second line imports the axios library, which is used for making HTTP requests.
  • The third line imports the ReactHTMLTableToExcel library, which is used for exporting HTML tables to Excel.
  • The fourth line imports a CSS file for styling the app.
  • The next few lines define a class called CascadingDropdown, which extends the Component class from React. This class has a constructor function that initializes the state of the component with some empty arrays and strings.
  • The componentDidMount function is called when the component is first mounted on the page. In this function, an HTTP GET request is made to the URL http://localhost:3000/countries-list, which returns a list of countries. The response data is then set to the CountryData state variable using the setState function.
  • The ChangeteState and ChangeCity functions are called when the user selects a country and a state from the dropdown menus, respectively. These functions update the state of the component with the selected values and make HTTP GET requests to two different URLs. The response data is then set to the StateData or CityData state variables, respectively.
  • Finally, the render function is called to render the UI of the component. This function returns some HTML code that displays three dropdown menus for selecting a country, a state, and a city. The values of these dropdown menus are set to the state variables CountryId, StateId, and CityData, respectively. When the user selects a country or a state, the onChange event is triggered and calls the ChangeteState or ChangeCity function, respectively. The options of the dropdown menus are dynamically generated based on the data stored in the CountryData, StateData, and CityData state variables.

If you want to learn how to create country state city rest apis; So, You can checkout out how to create country state city rest api in node js express with MySQL database.

Step 4 – Import Component in App.js

import above created component like Cascading.js file in src/App.js file:

import React from 'react';  
import logo from './logo.svg';  
import './App.css';  
import CascadingDropdown from './Cascading'  
function App() {  
return (  
<div className="App">  
<CascadingDropdown/>  
</div>  
);  
}  
export default App; 

Step 5 – Add CSS

Now, open the app.css file and add the following CSS classes:

.dropdn  
{  
margin-left: 250px;  
margin-top: 20px;  
margin-right: 250px;  
padding: 30px;  
}  
.slct  
{  
margin-top: 20px;  
} 

Conclusion

Cascading dropdown in react js; Through this tutorial, you have learned how to create a cascading dropdown or dependent country state city dropdown list in React JS using Web API.

Recommended React JS Tutorials

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
San Vito Al Tagliamento 33078
Pordenone Italy
Item added to cart.
0 items - 0.00
Open chat
Scan the code
Hello 👋
Can we help you?