我写了一个简单的下拉菜单,因为我想要不同的样式并对行为有更多的控制,但现在我被困在使用户点击其他地方时关闭下拉菜单身体或其他元素。我如何用纯粹的反应来实现这一目标?单击正文以改变状态,以响应关闭下拉菜单
var Hello = React.createClass({
getInitialState() {
return {
openDropdown: false
}
},
toggleDropdown: function() {
this.setState({
openDropdown: !this.state.openDropdown
})
},
render: function() {
return (
<ul>
<p onClick={this.toggleDropdown.bind(this)}>Select</p>
<div className={this.state.openDropdown ? 'show' : 'hide'}>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</div>
</ul>
)
}
});
这将有问题,如果我有多个下拉菜单。 –
是的。为了有多个下拉菜单,您需要保存哪个下拉菜单处于打开状态,并且只有在点击正文时才关闭该下拉菜单。 –