reactjs - React组件瞬间出现又消失

标签 reactjs

我收到了一项任务,我必须根据菜单上的点击在 div 中显示不同的组件。以前这些显示在选项卡中(并且它们工作正常),现在我必须删除选项卡并显示菜单。 我的代码是这样的

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>
)
}

问题是当我单击菜单链接组件时立即出现并消失,并且显示默认组件。无法在线找到任何具体的解决方案,因此请帮助我做错了什么。

最佳答案

问题是,当我们单击 href 链接时,由于其默认行为,页面刷新,组件出现并消失,然后显示默认组件。 它的解决方案是我们在点击时传递事件,然后阻止其默认行为,如下所示

<li key="2"><a href="#" onClick={(evt)=>this.handleClick(evt, 'profile')}><span>Profile</span></a></li>

handleClick: function (event, name) {
        event.preventDefault();
        ...
}

关于reactjs - React组件瞬间出现又消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40584533/

相关文章:

reactjs - 如何将azure blob存储数据获取到Azure应用程序服务上托管的React应用程序中

javascript - react : menu + submenu + content

javascript - React中将数据从子组件传递到父组件

reactjs - GraphQL 查询仅显示原始结果

reactjs - react JS 中的 Cronjob

reactjs - 使用 Karma、Mocha 和 React 16.5 诊断重复的规范报告

javascript - Reactjs .NET 中的函数永远无法实现 - 如何在渲染中调用简单的箭头函数?

javascript - React : Loading scripts in <head> takes long time, 无法使用

javascript - 无法读取未定义的属性 x

reactjs - 如何在 React 中手动删除事件监听器