Reactjs 超级表达式必须为null或函数,而不是未定义的
我正在尝试为以下反应组件配置带有酶的Jest:Reactjs 超级表达式必须为null或函数,而不是未定义的,reactjs,jestjs,enzyme,Reactjs,Jestjs,Enzyme,我正在尝试为以下反应组件配置带有酶的Jest: import React from "react"; import PropTypes from "prop-types"; class App extends React.PureComponent { render() { return ( <section className='container-menu'> <div className='
import React from "react";
import PropTypes from "prop-types";
class App extends React.PureComponent {
render() {
return (
<section className='container-menu'>
<div className='item-logo'>
<img width='70' src='/images/logo.png'/>
</div>
<div className='item-menu'>
{/*<AppMenu/>*/}
</div>
<div className='item-page-header'>
{this.props.children}
</div>
</section>
);
}
}
export default App;
从“React”导入React;
从“道具类型”导入道具类型;
类App扩展了React.PureComponent{
render(){
返回(
{/*根据以下测试代码,配置酶在Jest中运行的方法是:
import App from "./App";
import React from "react";
import {configure, shallow} from 'enzyme';
import Adapter from 'enzyme-adapter-react-15';
describe("App", () => {
configure({adapter: new Adapter()});
const wrapper = shallow(<App/>);
expect(wrapper.exists()).toBe(true);
});
从“/App”导入应用程序;
从“React”导入React;
从“酶”导入{configure,shallow};
从'enzyme-Adapter-react-15'导入适配器;
描述(“应用程序”,()=>{
配置({adapter:newadapter()});
常量包装器=浅();
expect(wrapper.exists()).toBe(true);
});
运行测试运行程序时,我收到以下错误:
TypeError:超级表达式必须为null或函数,而不是未定义的
at _inherits (node_modules/enzyme-adapter-react-15/build/ReactFifteenAdapter.js:51:113)
at node_modules/enzyme-adapter-react-15/build/ReactFifteenAdapter.js:135:3
at Object.<anonymous> (node_modules/enzyme-adapter-react-15/build/ReactFifteenAdapter.js:400:2)
at Object.<anonymous> (node_modules/enzyme-adapter-react-15/build/index.js:2:18)
at Object.<anonymous> (src/app/view/App.test.js:4:27)
at next (native)
at handle (node_modules/worker-farm/lib/child/index.js:44:8)
at process.<anonymous> (node_modules/worker-farm/lib/child/index.js:51:3)
at emitTwo (events.js:106:13)
at process.emit (events.js:191:7)
at process.nextTick (internal/child_process.js:719:12)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
at继承(node_modules/enzyme-adapter-react-15/build/ReactFifteenAdapter.js:51:113)
节点_modules/enzyme-adapter-react-15/build/reactefiteenadapter.js:135:3
在对象上。(node_modules/enzyme-adapter-react-15/build/ReactFifteenAdapter.js:400:2)
对象上。(node_modules/enzyme-adapter-react-15/build/index.js:2:18)
at对象。(src/app/view/app.test.js:4:27)
在下一个(本地)
在句柄(node_modules/worker farm/lib/child/index.js:44:8)
在进程中。(node_modules/worker farm/lib/child/index.js:51:3)
两点钟(events.js:106:13)
在process.emit(events.js:191:7)
在process.nextTick(internal/child_process.js:719:12)
at_combinedTickCallback(内部/流程/下一步勾选js:67:7)
在进程中。_tick回调(内部/process/next_tick.js:98:9)
我也有同样的问题。后来发现酶-adapter-react-15也依赖于enzyme@3.x.x
我通过运行npmi--save dev解决了这个问题enzyme@latest
有关详细信息,您可以查看此问题: