根组件为React.component

时间:2016-12-28 09:39:50

标签: javascript node.js reactjs react-boilerplate

我正在使用react-boilerplate而我正在尝试将App component更改为React.Component,因为我正在尝试实施身份验证并显示/按照this example显示取决于身份验证状态的侧边菜单。如您所见,最初的道具通过props参数传递给App。我已将App/index.js类更改为:

import React from 'react';
import Header from 'components/Header';
import SideMenu from 'containers/SideMenu';
import Footer from 'components/Footer';
import auth from 'utils/auth'

export class App extends React.Component {
  render() {
  console.log(props)
  return (
      <div>
        <Header />
        <SideMenu />
        {React.Children.toArray(props.children)}
        <Footer />
      </div>
    );
  }
}

App.propTypes = {
  children: React.PropTypes.node,
};

export default App;

这会抛出一个没有定义道具的错误:

  

ReferenceError:未定义props   App.render   ** /应用/ index.js

您可以看到如何实例化根路由here

// Set up the router, wrapping all Routes in the App component
import App from 'containers/App';
import createRoutes from './routes';
const rootRoute = {
  component: App,
  childRoutes: createRoutes(store),
};

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

使用:

this.props.children

此外,您不需要将子项更改为数组

只需使用:

 {this.props.children}