【发布时间】:2017-05-19 09:06:06
【问题描述】:
我有一个包含按钮的标题组件,我希望该按钮在单击时显示另一个组件(模式页面)。
我可以这样做吗:
这是我的标题组件:
import ComponentToDisplay from './components/ComponentToDisplay/index'
class Header extends React.Component {
constructor(props) {
super(props)
}
props : {
user: User
}
_handleInvitePlayerClick = () => {
this.refs.simpleDialog.show();
}
render(){
return(
<Button onClick={this._handleInvitePlayerClick} ><myButton/></Button>
<ComponentToDisplay />
)
}
}
这是我的模态页面组件,当单击另一个组件上的按钮时应该显示该组件:
class ComponentToDisplay extends React.Component {
componentDidMount() {
}
render() {
return (
<div>
<SkyLight
ref="simpleDialog"
title={"Title for the modal"}>
{"Text inside the modal."}
<Button onClick={() => this.refs.simpleDialog.hide()}>{"Close modal"}</Button>
</SkyLight>
</div>
)
}
}
【问题讨论】:
-
您应该将
ref属性添加到您的ComponentToDisplay以使其至少在this.refs下注册 -
但老实说,您应该只更新点击状态并将其作为道具传递给您的对话框,以便它可以决定是否应该渲染。
标签: javascript reactjs