繁体   English   中英

为什么 react firebase 钩子在使用 email 和密码登录时无法显示错误?

[英]Why react firebase hook do not working to show error in sign in with email and password?

这是我的代码:

import { useSignInWithEmailAndPassword } from 'react-firebase-hooks/auth';

  let [
        signInWithEmailAndPassword1,
        user,
        error,
    ] = useSignInWithEmailAndPassword(auth);

我尝试了几次显示 error.message 但没有显示任何内容,并且当我犯了任何错误(如不匹配 email 或密码)时,控制台错误显示为 false。

但是在使用 email 和密码注册时,他们的钩子就没问题了。

让 [createUserWithEmailAndPassword, user, loading, error, ] = useSignInWithEmailAndPassword(auth);

用这个。 如果你不在第三个括号内使用它们中的任何一个并打破序列,它就不起作用。

这就是所谓的解构,因为钩子useSignInWithEmailAndPassword正在返回一个Array ,JavaScript 必须遵守它返回的 object 的顺序。

如果返回 object 是 [a Json] Object ,您可以简单地不以任何顺序分配值(示例):

const {
  key3,
  key1,
} = {
  key1: 123,
  key2: "foo",
  key3: "bar"
}

您可以将不想使用的变量分配为下划线 ( _ ):

import { useSignInWithEmailAndPassword } from 'react-firebase-hooks/auth';

const [
      signInWithEmailAndPassword1,
      user,
      _,
      error,
  ] = useSignInWithEmailAndPassword(auth);

或者,简单地继续解构也是有效的:

import { useSignInWithEmailAndPassword } from 'react-firebase-hooks/auth';

const [
      signInWithEmailAndPassword1,
      user,
      ,
      error,
  ] = useSignInWithEmailAndPassword(auth);

作为旁注,除非您计划直接更改(变异 -请参阅可变性)变量的值( signInWithEmailAndPassword1usererror ),否则您应该在声明它们时使用const关键字。

有关constlet和(较旧的) var关键字的更多信息,请参阅MDN 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM