【问题标题】:How to solve Property does not exist in type 'never'如何解决“从不”类型中不存在属性
【发布时间】:2022-01-23 03:20:25
【问题描述】:

我正在使用库 react-google-recaptcha 来生成不可见的 ReCaptcha,但出现以下打字稿错误:

“从不”类型中不存在属性“执行”

这是代码:

  const recaptcha = useRef(null);

  useEffect(() => {
    let token;
    if (recaptchaLoaded) {
      token = recaptcha.current?.execute();
    }
  }, [recaptchaLoaded]);
  
  
   <ReCAPTCHA
      ref={recaptcha}
      sitekey={SITE_KEY}
    />

我怎样才能输入 .execute() 以使这个错误不再发生? 或者我应该用其他方式吗?

谢谢

【问题讨论】:

  • 也许通过分离你的代码,一个包含recaptcha.current的临时变量,然后一个条件来测试你是否可以在上面调用execute
  • const recaptcha = useRef(null);尝试这个 ? const recaptcha = useRef(null);还是这个?
  • 使用 const recaptcha = useRef(null) 解决了!谢谢

标签: javascript reactjs typescript typescript-typings


【解决方案1】:

您需要通过向 useRef 提供 type 参数 来告诉 TypeScript ref 将引用的类型(因为 TypeScript 无法从初始值 null 推断它)。假设您使用的是this npm package,您似乎使用了组件的类型:

const recaptcha = useRef<ReCAPTCHA>(null);
//                      ^^^^^^^^^^^

【讨论】:

    猜你喜欢
    • 2020-05-07
    • 2019-09-08
    • 2021-12-05
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2017-10-24
    相关资源
    最近更新 更多