Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React隐藏组件而不使用React路由器_Javascript_Reactjs - Fatal编程技术网

Javascript React隐藏组件而不使用React路由器

Javascript React隐藏组件而不使用React路由器,javascript,reactjs,Javascript,Reactjs,我有4个组件。应用程序组件包含所有内容,菜单组件包含两个链接选项:常规和评论,以及我试图隐藏/显示的两个组件:常规组件和评论组件 如何使菜单组件最初显示常规组件,如果单击reviews链接,它将隐藏常规组件并显示reviews组件。然后,如果单击General component链接,它将隐藏reviews组件并显示General组件。我不需要使用路由器,因为我不改变链接,我只需要隐藏和显示组件 我有在应用程序状态上添加活动状态的想法,但不确定它将如何工作 在你的应用程序组件中,有一个状态项cu

我有4个组件。应用程序组件包含所有内容,菜单组件包含两个链接选项:常规和评论,以及我试图隐藏/显示的两个组件:常规组件和评论组件

如何使菜单组件最初显示常规组件,如果单击reviews链接,它将隐藏常规组件并显示reviews组件。然后,如果单击General component链接,它将隐藏reviews组件并显示General组件。我不需要使用路由器,因为我不改变链接,我只需要隐藏和显示组件


我有在应用程序状态上添加活动状态的想法,但不确定它将如何工作

在你的应用程序组件中,有一个状态项
currentView
,它将保存你想要显示的页面,可以使用if和else,也可以在未选择选项时隐藏它们

class App extends React.Component {
    constructor() {
        this.state = {
            currentView: 'general' // general|reviews|etc...
        }
        this.changeView = this.changeView.bind(this);
    }

    changeView(viewName) {
        this.setState({
            currentView: viewName
        });
    }   

    render() {
        return (
            <div className="menu">
                {this.state.currentView !== 'general' && (
                    <a onClick={() => this.changeView('general')}>
                        General
                    </a>
                )}
                {this.state.currentView !== 'reviews' && (
                    <a onClick={() => this.changeView('reviews')}>
                        Reviews
                    </a>
                )}
            </div>
        );
    }
}
类应用程序扩展了React.Component{
构造函数(){
此.state={
currentView:'general'//general | reviews |等。。。
}
this.changeView=this.changeView.bind(this);
}
更改视图(视图名称){
这是我的国家({
currentView:viewName
});
}   
render(){
返回(
{this.state.currentView!=='general'&&(
this.changeView('general')}>
一般的
)}
{this.state.currentView!=='reviews'&&(
this.changeView('reviews')}>
评论
)}
);
}
}

只需谷歌“react conditional render”,在这段代码中,review或General组件将放在哪里?我可以理解点击链接会改变链接的状态,但我只是做同样的事情来渲染组件?