reactjs - 引用错误 : React is not defined in jest tests

标签 reactjs jestjs babel-jest

我有以下行在浏览器中正确执行
eval(Babel.transform(template, { presets: ['react'] }).code);
但是当我运行 Jest 测试时,我得到了 ReferenceError: React is not defined
我错过了什么?

更多信息:
在测试文件中,我有以下内容:

const wrapper = shallow(<MyComponent/>);
const instance = wrapper.instance();
instance.componentFunction(...)

然后 componentFunction 有 eval(Babel.transform(template, { presets: ['react'] }).code);线在哪里template它是从测试文件中获取的,可以是类似 <span>...</span> 的内容。

如果需要更多详细信息,请告诉我

最佳答案

如果您在 jest 测试文件中使用 JSX,则需要将以下导入行添加到文件顶部:

import React from 'react';

这样做的原因是 Babel 将 JSX 语法转换成了一系列 React.createElement()调用,如果你导入 React 失败,这些都会失败。

关于reactjs - 引用错误 : React is not defined in jest tests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58980934/

相关文章:

javascript - 在 ReactJS 中将 ValueLink 与自定义 onChange 处理程序结合使用

javascript - Gatsby 类型错误 : Cannot read property 'allWordpressAcfOptions' of undefined

javascript - GSAP Draggable with React ES6 实际这个

reactjs - 有没有办法手动触发 Material-UI Modal 关闭

typescript - 如何使用 `ioredis`中的Redis设置RedisService?

jestjs - Babel7 Jest 意外 token 导出

vue.js - VueJS - 使用 vue-test-utils 进行单元测试会出错 - TypeError : _vm. $t 不是函数

javascript - react | UseCallBack 内的 Prop 未在自定义 Hook 内更新

reactjs - jest 中的 jest.fn() 和 jest.spyOn() 方法有什么区别?

javascript - Jest ES6 错误意外 token 导入?