【发布时间】:2018-09-07 22:28:55
【问题描述】:
我有一个 React js 应用程序(请不要使用 JQuery)下拉菜单,当单击 ▼ 字符时会触发它。使用下面的代码,下拉菜单只有在再次单击相同的 ▼ 时才会消失。当用户单击页面上的其他任何位置时,我想让它消失。如何更改下面的代码以使下拉菜单在用户单击页面上的其他任何位置时也消失,而不仅仅是单击相同的图标 ▼?
切换器图标:
<span className="show_more" onClick={this.toggleOptions}>
<MaterialIcon icon="keyboard_arrow_down" />
</span>
切换代码:(被许多组件使用,所以只能在这里修复吗?)
import React, { Component } from 'react'
...
import MaterialIcon from '../icons/material-icon'
import HeaderLogo from './logo'
export default class Header extends Component {
state = {
showOptions: false,
}
toggleOptions = () => this.setState({ showOptions: !this.state.showOptions })
render() {
let { showOptions } = this.state
return (
<div className="header">
<div className="row-container container">
<div className="col-l">
<HeaderLogo />
</div>
<div className="col-m">
<Search />
</div>
<div className="col-r">
<div className="header_right">
<HeaderTopLinks />
<span className="show_more" onClick={this.toggleOptions}>
<MaterialIcon icon="keyboard_arrow_down" />
</span>
</div>
{showOptions ? (
<HeaderOptions toggleOptions={this.toggleOptions} />
) : null}
</div>
</div>
</div>
)
}
}
【问题讨论】:
标签: javascript reactjs