Javascript 反应酶类型错误:无法读取未定义的属性“propTypes”

Javascript 反应酶类型错误:无法读取未定义的属性“propTypes”,javascript,node.js,reactjs,mocha.js,enzyme,Javascript,Node.js,Reactjs,Mocha.js,Enzyme,以下是我的React组件: import React from 'react' var PageLeftLower = React.createClass({ render:function(){ return(<a href="#">Quote Requests</a>); } }); module.exports = PageLeftLower; 所以,非常简单的反应组分。 我刚刚开始使用酶和摩卡进行测试,并编写了以下代码 import expe

以下是我的React组件:

import React from 'react'

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

module.exports = PageLeftLower;
所以,非常简单的反应组分。 我刚刚开始使用酶和摩卡进行测试,并编写了以下代码

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:类型不应为null、未定义、布尔或数字。它应该是DOM元素的字符串,或者是复合组件的ReactClass

以及以下错误:

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

非常感谢您的帮助。

问题在于:

import {PageLeftLower} from './PageLeftLower';
因为您直接导出组件时使用的是:

module.exports = PageLeftLower;
它没有像这样包装在对象中:

module.exports = {PageLeftLower: PageLeftLower};
因此,您的组件可以通过以下方式访问:

import PageLeftLower from './PageLeftLower'; // not {PageLeftLower}
问题在于:

import {PageLeftLower} from './PageLeftLower';
因为您直接导出组件时使用的是:

module.exports = PageLeftLower;
它没有像这样包装在对象中:

module.exports = {PageLeftLower: PageLeftLower};
因此,您的组件可以通过以下方式访问:

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

完美的男人,我昨天就知道了,但是谢谢你的回答:完美的男人,我昨天就知道了,但是谢谢你的回答: