我得到了一个任务,我必须在div中显示不同的组件,具体取决于菜单上的点击。以前,这些显示在标签中(并且它们工作正常),现在我必须移除标签并显示菜单。 我的代码是这样的React组件出现并立即消失
handleClick: function (name) {
ReactDOM.unmountComponentAtNode(document.getElementById('main_data'));
if (name == 'projects') {
ReactDOM.render(<ListProjects parentThis = {this} />, document.getElementById('main_data'))
}
else if (name == 'profile') {
ReactDOM.render(<div className="inner clearfix">
<Avatar parentThis = {this}/>
</div>,
document.getElementById('main_data'))
}
render: function() {
return (
<div className="row">
<div className="col-sm-12">
<div className="user-menu">
<ul className="dropdown clearfix boxed">
<li key="1"><a href="#" onClick={()=>this.handleClick('projects')}><span>Projects</span></a></li>
<li key="2"><a href="#" onClick={()=>this.handleClick('profile')}><span>Profile</span></a></li>
</ul>
</div>
<div id="main_data">
<ListProjects parentThis = {this} />
</div>
</div>
</div>
)
}
问题是当我在菜单路段组件单击出现瞬间消失,默认组件被显示。无法在线找到任何特定的解决方案,请帮助我做错了什么。
它的默认行为,因为你的渲染功能将被再次调用,你应该保持一个内部状态“工程” /“个人资料”,有你的渲染功能适应它。 –