使用withTracker时出错(React.createElement:type无效)

时间:2017-12-01 16:40:05

标签: reactjs meteor react-router

我有一个组件(Board)调用另一个组件:(BoardCardContainer)。

这是错误消息:

  

React.createElement:type无效 - 期望一个字符串(for   内置组件)或类/函数(用于复合组件)   但得到了:未定义。您可能忘记从中导出组件   它定义的文件。检查Board的渲染方法。

Board.js:

... bunch of imports
import { BoardCardContainer } from './BoardCardContainer';

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

  renderCards() {
    return this.props.cards.map(card => (
      <div key={card._id} style={{ margin: 5 }}>
        <BoardCardContainer /> //HERE IS THE PROBLEM!!!!
      </div>
    ));
  }    
  render() { ... }
}

./ BoardCardContainer.js

... bunch of imports
export default BoardCardContainer = withTracker(() => { ... })(BoardCard);

1 个答案:

答案 0 :(得分:1)

这是一个非常常见的ES6错误。

您的导入:

import { BoardCardContainer } from './BoardCardContainer';

是通过名称导入,但是您的相应导出:

export default BoardCardContainer = withTracker(() => { ... }

正在导出默认

只需将导入更改为:

import BoardCardContainer from './BoardCardContainer';