我寫了一個簡單的下拉菜單,因爲我想要不同的樣式並對行爲有更多的控制,但現在我被困在使用戶點擊其他地方時關閉下拉菜單身體或其他元素。我如何用純粹的反應來實現這一目標?單擊正文以改變狀態,以響應關閉下拉菜單
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>
)
}
});
這將有問題,如果我有多個下拉菜單。 –
是的。爲了有多個下拉菜單,您需要保存哪個下拉菜單處於打開狀態,並且只有在點擊正文時才關閉該下拉菜單。 –