参考错误:在React上找不到变量regeneratorRuntime

4

我想要用React和Firebase创建一个登录功能。我一直在按照教程进行操作,但是这段代码存在问题:

const handleLogin = useCallback(
    async event => {
        event.preventDefault();
        const { email, password } = event.target.elements;
        try {
            await firebaseConfig.auth().signInWithEmailAndPassword(email.value, password.value);
            history.push("/citas")
        } catch (error) {
            alert(error);
        }
    },
    [history]
);

我的代码出现以下错误:

ReferenceError: 找不到变量:regeneratorRuntime

我不知道这是什么意思,因此找不到解决方案。有任何想法吗?


你怎么知道是你展示的这段代码引起了问题?你在调试过程中观察到了什么? - Doug Stevenson
浏览器控制台说了这个。 - David Díaz
你怎么知道是这段代码出了问题?你已经做了什么来调试它了吗? - Doug Stevenson
搞定了!不管怎样,就像我说的那样,浏览器控制台显示问题出在那行代码上。 - David Díaz
我了解控制台日志。在Stack Overflow上,问题应该提供一些关于你正在尝试完成什么或者你已经做了什么来到现在这个地方的背景信息。仅仅发布代码和错误信息通常不足以让人们理解发生了什么问题。我们需要足够的信息来能够自己重现这个问题。 - Doug Stevenson
2个回答

6

使用@babel/polyfill已正式不推荐。由于您正在使用 React 应用程序(且不依赖遗留代码库),您可以考虑使用以下内容:

npm i --save core-js/stable regenerator-runtime

// ECMA Script Polyfills:
import "core-js/stable";
// Needed for the generator functions which are transpiled from your async await keywords
import "regenerator-runtime/runtime";

参考文献


3
我使用的一个变体是:npm i --save-dev regenerator-runtime(您列出的完整命令会导致 Git 错误 - 我认为这些存储库已被删除?) - eAi
感谢您告诉我 @eAi,我已经检查过并更新了答案。 - lotype

1

npm install --save @babel/polyfill 可能是解决方案,同时将它们导入到您的文件中。


2
它起作用了,哇。我可以问一下为什么需要这个吗? - David Díaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接