React.ForwardRef TypeScript组件类型错误

Kiarash z

我有一个Block组件,它将根据prop值呈现diva标签。我想将引用从父组件传递到此组件。因此,我需要将RefForwardingComponenttype用作组件变量类型,但由于HTMLAnchorElement之间的类型不兼容而收到错误消息HTMLDivElement我该如何解决?这是CodeSandBox上的组件代码

import * as React from "react";

interface Props {
  isLink: boolean;
}

type PropsWithElementProps<T> = React.HTMLProps<T> & Props;

type RefComponent<T, U> =
  | React.RefForwardingComponent<T, PropsWithElementProps<T>>
  | React.RefForwardingComponent<U, PropsWithElementProps<U>>;

// error for Block variable type... full error on CodeSandBox link
const Block: RefComponent<HTMLAnchorElement, HTMLDivElement> = React.forwardRef(
  ({ isLink }, ref) => {
    if (isLink)
      return (
        <a ref={ref} href="#nothing">
          I'm a link!
        </a>
      );
    else return <div ref={ref}>I'm a div!</div>;
  }
);

export default Block;

斯佩克斯

React.forwardedRef希望您在无法推断出的情况下为返回的元素和道具提供一种类型。您可以这样表示:

import * as React from "react";

interface Props {
  isLink?: boolean;
}

const Block = React.forwardRef<HTMLAnchorElement & HTMLDivElement, Props>(
  ({ isLink = false }, ref) => {
    return isLink ? (
      <a ref={ref} href="#nothing">
        {"I'm a link!"}
      </a>
    ) : (
      <div ref={ref}>{"I'm a div!"}</div>
    );
  }
);

export default Block;

forwardRef类型定义是这样的:

function forwardRef<T, P = {}>(render: ForwardRefRenderFunction<T, P>): ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回输入或textArea的元素的React / Typescript forwardRef类型

来自分类Dev

在React中,使用TypeScript,如何使用RefForwardingComponent和forwardRef将ref传递给自定义组件?

来自分类Dev

使用Typescript进行反应-使用React.forwardRef时的泛型

来自分类Dev

React forwardRef:ref和其他道具

来自分类Dev

无法在React最终形式中使用forwardRef

来自分类Dev

我如何用jsdoc注释注释React.forwardRef,以便可以为基础组件显示intellisense?

来自分类Dev

React Native + 图标:警告:道具类型失败:提供给 ForwardRef(Text) 的 props.style 键 tintColor 无效

来自分类Dev

在渲染器中使用不同的html元素时,如何在TypeScript中使用React.forwardRef

来自分类Dev

结合使用ForwardRef和Link组件

来自分类Dev

如何在React Native中使用React.forwardRef()

来自分类Dev

React 组件的 Typescript 属性类型的语法?

来自分类Dev

React useImperativeHandle和forwardRef被设置,引用似乎没有更新

来自分类Dev

在React.forwardRef中使用ref.current

来自分类Dev

到底为什么我们需要React.forwardRef?

来自分类Dev

聚焦单选按钮时,React useRef / forwardRef无法正常工作

来自分类Dev

通用高阶React组件产生类型错误

来自分类Dev

React Typescript功能组件语法错误

来自分类Dev

React 中的组件拆分导致 TypeScript 错误

来自分类Dev

使用forwardRef后如何将组件绑定到组件?

来自分类Dev

如何在单独的选择组件中键入forwardRef?

来自分类Dev

使用React和Typescript创建具有不可分配类型错误的可重用按钮组件

来自分类Dev

React和Typescript-错误的类型检查

来自分类Dev

如何从React组件中提取特定的TypeScript prop类型?

来自分类Dev

将TypeScript类型作为道具传递给React组件?

来自分类Dev

从React组件导出TypeScript类型的字符串prop值?

来自分类Dev

Promise的Typescript类型声明,该声明返回React组件

来自分类Dev

React组件的TypeScript类型prop是对象数组吗?

来自分类Dev

类型错误:无法读取 React 组件中的 null 属性

来自分类Dev

没有它,React.forwardRef已经可以使用,那么它的用途是什么?

Related 相关文章

  1. 1

    返回输入或textArea的元素的React / Typescript forwardRef类型

  2. 2

    在React中,使用TypeScript,如何使用RefForwardingComponent和forwardRef将ref传递给自定义组件?

  3. 3

    使用Typescript进行反应-使用React.forwardRef时的泛型

  4. 4

    React forwardRef:ref和其他道具

  5. 5

    无法在React最终形式中使用forwardRef

  6. 6

    我如何用jsdoc注释注释React.forwardRef,以便可以为基础组件显示intellisense?

  7. 7

    React Native + 图标:警告:道具类型失败:提供给 ForwardRef(Text) 的 props.style 键 tintColor 无效

  8. 8

    在渲染器中使用不同的html元素时,如何在TypeScript中使用React.forwardRef

  9. 9

    结合使用ForwardRef和Link组件

  10. 10

    如何在React Native中使用React.forwardRef()

  11. 11

    React 组件的 Typescript 属性类型的语法?

  12. 12

    React useImperativeHandle和forwardRef被设置,引用似乎没有更新

  13. 13

    在React.forwardRef中使用ref.current

  14. 14

    到底为什么我们需要React.forwardRef?

  15. 15

    聚焦单选按钮时,React useRef / forwardRef无法正常工作

  16. 16

    通用高阶React组件产生类型错误

  17. 17

    React Typescript功能组件语法错误

  18. 18

    React 中的组件拆分导致 TypeScript 错误

  19. 19

    使用forwardRef后如何将组件绑定到组件?

  20. 20

    如何在单独的选择组件中键入forwardRef?

  21. 21

    使用React和Typescript创建具有不可分配类型错误的可重用按钮组件

  22. 22

    React和Typescript-错误的类型检查

  23. 23

    如何从React组件中提取特定的TypeScript prop类型?

  24. 24

    将TypeScript类型作为道具传递给React组件?

  25. 25

    从React组件导出TypeScript类型的字符串prop值?

  26. 26

    Promise的Typescript类型声明,该声明返回React组件

  27. 27

    React组件的TypeScript类型prop是对象数组吗?

  28. 28

    类型错误:无法读取 React 组件中的 null 属性

  29. 29

    没有它,React.forwardRef已经可以使用,那么它的用途是什么?

热门标签

归档