ドロップダウンコンポーネント
12357 ワード
ドロップダウンは、リンクのリストを表示するためのトグル、文脈上のオーバーレイです.彼らは含まれてブートストラップドロップダウンと対話されます.ドロップダウンはクリックして切り替えられます.
してください共有購読し、あなたのためにもっと書くことを動機に肯定的なフィードバックを与える.
より多くのチュートリアルのために、visit my website .
ありがとう
ハッピーコーディング
ドロップダウンコンポーネント
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>
);
}
}
今、私たちは< dropdown/>コンポーネントを反応させ、機能やクラスのコンポーネントでこれを簡単に使用できます.してください共有購読し、あなたのためにもっと書くことを動機に肯定的なフィードバックを与える.
より多くのチュートリアルのために、visit my website .
ありがとう
ハッピーコーディング
Reference
この問題について(ドロップダウンコンポーネント), 我々は、より多くの情報をここで見つけました https://dev.to/readymadecode/react-dropdown-component-1n36テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol