Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 5, 2022 03:25 pm GMT

React Dropdown Component

Dropdowns are toggleable, contextual overlays for displaying lists of links and more. They are made interactive with the included Bootstrap dropdown. Dropdown are toggled by clicking.

Create React Dropdown Component

class Dropdown extends React.Component {  constructor(props) {    super(props);    this.toggleDropdown = this.toggleDropdown.bind(this);    this.handleMouseEvent = this.handleMouseEvent.bind(this);    this.handleBlurEvent = this.handleBlurEvent.bind(this);    this.hasFocus = this.hasFocus.bind(this);    this.state = {      show: false    };  }  componentDidMount() {    document.addEventListener('mouseup', this.handleMouseEvent);    this.dropdown.addEventListener('focusout', this.handleBlurEvent);  }  hasFocus(target) {    if (!this.dropdown) {      return false;    }    var dropdownHasFocus = false;    var nodeIterator = document.createNodeIterator(this.dropdown, NodeFilter.SHOW_ELEMENT, null, false);    var node;        while(node = nodeIterator.nextNode()) {      if (node === target) {        dropdownHasFocus = true;        break;      }    }    return dropdownHasFocus;  }  handleBlurEvent(e) {    var dropdownHasFocus = this.hasFocus(e.relatedTarget);    if (!dropdownHasFocus) {      this.setState({        show: false      });    }      }  handleMouseEvent(e) {    var dropdownHasFocus = this.hasFocus(e.target);    if (!dropdownHasFocus) {      this.setState({        show: false      });    }  }  toggleDropdown() {    this.setState({      show: !this.state.show    });  }  render() {    return (      <div className={`dropdown ${this.state.show ? 'show' : ''}`} ref={(dropdown) => this.dropdown = dropdown}>        <button           className="btn btn-secondary dropdown-toggle"           type="button"           id="dropdownMenuButton"           data-toggle="dropdown"           aria-haspopup="true"           aria-expanded={this.state.show}          onClick={this.toggleDropdown}>          Dropdown button        </button>        <div           className="dropdown-menu"           aria-labelledby="dropdownMenuButton">          <a className="dropdown-item" href="#nogo">Item 1</a>          <a className="dropdown-item" href="#nogo">Item 2</a>        </div>      </div>    );  }}

Now we have react <Dropdown /> component and we can use this in our functional or class components easily.

Please like share subscribe and give positive feedback to motivate me to write more for you.

For more tutorials please visit my website.

Thanks:)
Happy Coding:)


Original Link: https://dev.to/readymadecode/react-dropdown-component-1n36

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To