React Enzyme Type错误:无法读取属性'propTypes'的未定义

React Enzyme Type Error:Cannot read property 'propTypes' of undefined

本文关键字:propTypes 未定义 属性 读取 Type Enzyme 错误 React      更新时间:2023-09-26

以下是我的React组件:

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

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

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:type不应为null、undefined、boolean或number。它应该是字符串(对于DOM元素)或ReactClass(对于复合组件)。

以及以下错误:

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

非常感谢您的帮助。

问题就在这里:

import {PageLeftLower} from './PageLeftLower';

因为您使用直接导出组件

module.exports = PageLeftLower;

它没有被包裹在这样的对象中:

module.exports = {PageLeftLower: PageLeftLower};

因此,您的组件可以通过以下方式访问:

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