未捕获的 ReferenceError:regeneratorRuntime 未在 React 中定义
IT技术
reactjs
frontend
react-functional-component
2021-05-21 11:47:25
4个回答
- 安装运行时依赖
npm i --save-dev @babel/plugin-transform-runtime
- 将插件添加到您的 .babelrc 文件中
{
"plugins": ["@babel/plugin-transform-runtime"]
}
更多信息:https : //babeljs.io/docs/en/babel-plugin-transform-runtime
TLDR;
- 异步函数是生成器之上的抽象。
- 所有主要浏览器和 Node10 及更高版本现在都支持异步函数和生成器。
- 如果为了向后兼容而使用转译器(例如 babel),则需要一个额外的“层”来转换生成器。这意味着在运行时将 ES6 转换为 ES5,因为它们的语法不向后兼容。见https://cmichel.io/how-are-generators-transpiled-to-es5
谢谢 它在我添加导入语句时起作用 -import regeneratorRuntime from "regenerator-runtime";
在我使用 async/await 的组件中。
遇到这个问题(使用 Babel v7),即使按照建议安装了相关软件包,我仍然无法获取此错误的 id。检查了以下堆栈溢出帖子...
以下行动有所帮助:
- 转到 package.json 并在“jest”中添加以下内容(还添加了屏幕截图):
"moduleNameMapper": {
".+\.(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"
希望它可以帮助像它帮助我的人...
如果您确实有必要使用 async 功能,那么上述解决方案应该可行。解决此问题的另一种方法是使用常规Promise,至少在我的情况下是这样。
其它你可能感兴趣的问题