如何在 React + Babel 中允许异步函数?

Don*_*al0 5 javascript reactjs babeljs

我有一个 Typescript/React 应用程序,它可以使用 then/catch Promise 执行异步函数,但不能使用 async/await/try/catch 执行异步函数。

错误是: Uncaught ReferenceError: regeneratorRuntime is not Define 。

该错误似乎来自 Babel。这是我的配置:

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-typescript",
    "@babel/preset-react"
  ],
  "plugins": ["babel-plugin-styled-components"]
}
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

Saj*_*med 8

您可以在这里找到您的解决方案

如果我总结一下,那么您必须安装一个babel名为的插件plugin-transform-runtime并需要配置.babelrc设置。

npm install @babel/plugin-transform-runtime --save-dev
npm install @babel/runtime
Run Code Online (Sandbox Code Playgroud)

安装这两个后,转到.babelrc文件并添加这些插件。

"plugins": [
    ["@babel/plugin-transform-runtime",
      {
        "regenerator": true
      }
    ]
  ],
Run Code Online (Sandbox Code Playgroud)