【问题标题】:React Router - Mounting component inside a nested componentReact Router - 在嵌套组件中安装组件
【发布时间】:2015-11-04 16:52:37
【问题描述】:

我很难弄清楚如何使用 react router v1.0 在嵌套组件中安装组件。我有一个加载布局组件的 App 组件。 Layout 组件然后加载两个组件,Menu 和 Content。我想根据路由在 Content 组件中加载不同的组件。

下面是我的示例代码。

var App = React.createClass({
    render : function(){
         return <div><Layout/></div>
     }
});

var Layout = React.createClass({
    render : function(){
        return(
            <div>
                <Menu/>
                <Content/>
            </div>
        )
    }
});

var Content = React.createClass({
    render : function(){
        return <div>This is where i want to mount my components</div>
    }
});

var List = React.createClass({
    render : function(){
        return <div>some list goes here</div>
    }
});

var Graph = React.createClass({
    render : function(){
        return <div>some graph goes here</div>
    }
});

<Router>
    <Route path='/' component={App}>
        <Route path='/list' component={List}/>
        <Route path='/graph' component={Graph}/>
    </Route>
</Router>

任何帮助/指针将不胜感激。

谢谢

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    这和基本的 React 组件是一样的。当您嵌套它们时,它们在this.props.children 上可用。所以你最终会得到这样的结果:

    var App = React.createClass({
        render : function(){
             return <div><Layout>{this.props.children}</Layout></div>
         }
    });
    
    var Layout = React.createClass({
        render : function(){
            return(
                <div>
                    <Menu/>
                    <Content>{this.props.children}</Content>
                </div>
            )
        }
    });
    
    var Content = React.createClass({
        render : function(){
            return <div>{this.props.children}</div>
        }
    });
    

    【讨论】:

    • 干!当然,有时你只需要第二双眼睛。谢谢蒂姆
    猜你喜欢
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多