反应酶types错误:无法读取未定义的属性'propTypes'

以下是我的React组件:

import React from 'react' var PageLeftLower = React.createClass({ render:function(){ return(<a href="#">Quote Requests</a>); } }); module.exports = PageLeftLower; 

所以,非常简单的React组件。 我刚开始使用Enzyme和Mocha进行testing,并编写了以下代码。

 import expect from 'expect'; import React from 'react'; import {shallow} from 'enzyme'; import {PageLeftLower} from './PageLeftLower'; describe('Component : WholeTab',() => { it('renders without exploding', () => { expect(shallow(<PageLeftLower/>).length).toEqual(1); }); }); 

当我执行它时,它输出以下警告:

组件:WholeTab警告:React.createElement:types不应该为null,undefined,boolean或number。 它应该是一个string(对于DOM元素)或ReactClass(对于复合组件)。

并出现以下错误:

TypeError:无法读取未定义的属性“propTypes”。

任何帮助,高度赞赏。

问题在这里:

 import {PageLeftLower} from './PageLeftLower'; 

因为你直接导出你的组件:

 module.exports = PageLeftLower; 

它不包含在像这样的对象中:

 module.exports = {PageLeftLower: PageLeftLower}; 

所以你的组件可以用

 import PageLeftLower from './PageLeftLower'; // not {PageLeftLower}