2017-03-03 114 views
0

我已经定义了一个父组件和一个子组件。当我将它们联系起来时,我收到了一个错误。在Meteor + React中,我如何在父React组件中渲染子React组件?

Parent.jsx

import React, {Component, PropTypes} from 'react'; 
import {Child} from '/imports/ui/components/Child'; 

export default class Parent extends Component { 
    constructor(props) { 
     super(props); 
    } 

    render() { 
     return (
      <Child /> 
     ); 
    } 
} 

Child.jsx

import React, {Component, PropTypes} from 'react'; 

export default class Child extends Component { 
    constructor(props) { 
     super(props); 
    } 

    render() { 
     return (
      <div>child</div> 
     ); 
    } 
} 

我已经注册与Blaze父:

Template.registerHelper("Parent", function() { 
    return Parent; 
}); 

...,我像这样使用它:

<div> 
    {{> React component=Parent }} 
</div> 

我得到在浏览器控制台这个错误:

警告:React.createElement:类型不能为空,未定义, 布尔或数字。它应该是一个字符串(用于DOM元素)或ReactClass(用于复合组件)。检查渲染方法 Parent

我确实有其他React组件在这个项目中工作,但他们都没有这个简单的父/子关系。我究竟做错了什么?

+0

也许你需要注册的子组件也 –

+2

也许你应该的'出口Child'代替'导出默认的Child'或'Import Child'而不是'import {Child}'。 – caisah

+0

@caisah aggggh是的就是这样。忘了我的模块导入/导出规则,没有什么可做的W/React。如果你把你的评论作为答案,我可以接受它。 – zim

回答

2

你应该

export Child,而不是export default Child

import Child而不是import {Child}