摘要:我收到ReferenceError: PropTypes is not defined
错误,导致测试套件在使用此命令对我的react组件运行快照测试时出现故障:jest Idea-test.js -c jest-config.json
。
我检查了什么:
eslint
是否有不同的版本(我没有,3.x.x
)import
或require()
测试文件中的PropType无效。组件:
import React from 'react';
import { Module, ModuleHeader, ModuleBody } from 'carbon-components-react';
import PropTypes from 'prop-types';
const Ideas = props =>
(
<Module className="ideas">
<ModuleHeader className="header">
{`${props.Title}`}
</ModuleHeader>
<ModuleBody className="body">
{`${props.Body}`}
<a href={props.Link}>
{`${props.LinkText}`}
</a>
</ModuleBody>
</Module>
);
Ideas.propTypes = {
Title: PropTypes.string.isRequired,
Body: PropTypes.string.isRequired,
Link: PropTypes.string.isRequired,
LinkText: PropTypes.string.isRequired,
};
export default Ideas;
快照测试文件:
import 'raf/polyfill';
import React from 'react';
import Ideas from '../../Ideas';
const renderer = require('react-test-renderer');
it('renders correctly', () => {
const tree = renderer
.create(<Ideas
Title='Title'
Body='Share your ideas'
Link='https://shareyouridea.already'
LinkText='Need ideas now.'
/>
)
.toJSON();
expect(tree).toMatchSnapshot();
});
答案 0 :(得分:1)
@Ketcomp当您使用<Ideas />
组件运行应用程序时,是否也会出现ReferenceError: PropTypes is not defined
错误?
如果是这样,我想在尝试安装prop-types
包时可能会发生一些事情。你的package.json
看起来像什么?
答案 1 :(得分:0)
从{React 15到16} prop-types
发生了一些变化 - 您可以看到其中一些here。也许carbon-components-react
正在调用旧版本/样式?