我在写ReactJS一个容器组件和我传递一个道具该组件将被渲染为“主”的内容,就像这样:阵营JS - 道具通过嵌套组件
class RegistrationContainer extends Component {
render() {
const MainContent = this.props.mainContent;
return (
<Row>
<Col offset="lg-3" lg={6}>
<MainContent />
</Col>
</Row>
);
}
}
export default RegistrationContainer;
而且我passsing给它一个mainContent
道具,像这样:
import RegistrationContainer from './RegistrationContainer';
import RegistrationEntryView from './RegistrationEntryView';
class RegistrationCodeEntry extends Component {
render() {
return (
<RegistrationContainer mainContent={RegistrationEntryView} />
);
}
}
export default RegistrationCodeEntry;
我的问题是,我想RegistrationEntryView
有道具,但似乎无法弄清楚如何定义/传中它道具。如果我这样做,我得到一个错误:
class RegistrationCodeEntry extends Component {
render() {
const RegistrationView = <RegistrationEntryView someProp="blah" /> ;
return (
<RegistrationContainer mainContent={RegistrationView} />
);
}
}
export default RegistrationCodeEntry;
错误如下:
invariant.js?7313:42 Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. Check the render method of
RegistrationContainer
.
这是一些this.props.children
能解决?我一直在努力让自己的头脑围绕这个概念,所以任何有关我出错的建议都将不胜感激。
我觉得'this.props.children'可以解决你的问题。在RegistrationCodeEntry的'render()'方法中返回somethng:'return( RegistrationContainer> );' –
samAlvin
谢谢,这正是我之后。 – deanmau5