[英]Uncaught ReferenceError: regeneratorRuntime is not defined
[英]Uncaught ReferenceError: regeneratorRuntime is not defined in React
npm i --save-dev @babel/plugin-transform-runtime
{
"plugins": ["@babel/plugin-transform-runtime"]
}
更多信息: https://babeljs.io/docs/en/babel-plugin-transform-runtime
TLDR;
谢谢 当我添加一个导入语句时它起作用了—— import regeneratorRuntime from "regenerator-runtime";
在我使用异步/等待的组件中。
遇到了这个问题(使用 Babel v7),即使按照建议安装了相关软件包,我仍然无法获得这个错误的 id。 检查了以下堆栈溢出帖子...
以下行动有所帮助:
“模块名称映射器”:{
".+\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "identity-obj-proxy" }
--setupFilesAfterEnv "./src/setupTests.js"
所以要运行测试,它将是:
$ jest /pathToTest/TestFile.test.js --setupFilesAfterEnv "./src/setupTests.js"
希望它可以帮助像它帮助我的人...
如果您确实需要使用异步 function,那么上述解决方案应该可以工作。 解决此问题的另一种方法是使用常规承诺,至少在我的情况下是这样。
只需添加
"browserslist": [
"last 2 Chrome versions"
]
在您的项目package.json
文件的末尾,还看到它的复数浏览器不是浏览器!
你的文件最终可能看起来像这样 ->
},
"dependencies": {
"prop-types": "^15.8.0",
"react": "^17.0.1",
"react-dom": "^17.0.1"
},
"browserslist": [
"last 2 Chrome versions"
]
}
忽略上述代码视图中的依赖部分,它仅用于参考 package.json 的外观。
2022
如果您使用的是 Babel 7 或更高版本,则不需要安装额外的插件( @babel/plugin-transform-runtime
或@babel/plugin-transform-regenerator
或其他插件)。
之后,每次使用async/await
语法时都必须包含此语句。
import regeneratorRuntime from "regenerator-runtime";
也许如果您在项目中设置了一个 linter,它会警告您该语句已声明但它的值从未被读取,但我认为这只是一个错误,因为如果您删除它,代码将不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.