我了解React应用程序应遵循以下原则:
数据向下流动,事件冒泡
但是,我发现从子组件一直发送到root用户的鼠标点击等事件然后将新状态一直发送回来是非常麻烦的。我知道如果多个组件受新状态的影响,这种方法是有意义的 - 但请考虑以下示例:
var PSMenu = React.createClass({
getInitialState: function() {
return {
isOpen: false
}
},
handleMenuClick: function(){
console.log("hello worldd");
this.setState({isOpen: !this.state.isOpen});
},
render: function() {
return (
<div className={this.state.isOpen ? "ps-menu ps-menu-open" : "ps-menu"}>
<div className="ps-menu-button" onClick={this.handleMenuClick}>
</div>
</div>
)
}
});
在这里,我有一个菜单类,其中有一个按钮伸出。该按钮是用于打开和关闭菜单的切换按钮。我可以处理onClick
组件中ps-menu-button
div的PSMenu
吗?根组件不知道发生了这种情况,但它没关系,因为它不应该关心。
如果此示例确实遵循React范例,请考虑以下内容。如果div ps-menu-button
不是常规div而是嵌套在PSMenuButton
内的名为PSMenu
的React组件,该怎么办?如果父母不知道,我可以在彼此之间进行PSMenu
和PSMenuButton
对话吗?
感谢您的任何见解。