gpt4 book ai didi

reactjs - 无法将 RefObject 分配给 RefObject 实例

转载 作者:行者123 更新时间:2023-12-03 13:45:40 28 4
gpt4 key购买 nike

在 React 组件中,我想保留对类型不同(div、img 等)的子节点的引用。所以我定义了一个成员变量:

export class MyComp extends Component<IProperties, IState> {

private triggerRef = React.createRef<HTMLElement>();

...
}


并想用它来保存所需的引用:
    const trigger = <div ref={this.triggerRef} className={className} style={style} />;

但是,这会产生错误:
Type 'RefObject<HTMLElement>' is not assignable to type 'string | ((instance: HTMLDivElement | null) => void) | RefObject<HTMLDivElement> | null | undefined'.
Type 'RefObject<HTMLElement>' is not assignable to type 'RefObject<HTMLDivElement>'.
Property 'align' is missing in type 'HTMLElement' but required in type 'HTMLDivElement'.ts(2322)
lib.dom.d.ts(6708, 5): 'align' is declared here.
index.d.ts(143, 9): The expected type comes from property 'ref' which is declared here on type 'DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>'

Type 'RefObject<HTMLElement>' is not assignable to type 'RefObject<HTMLDivElement>'表示这两种 ref 对象类型不兼容,即使 HTMLDivElement扩展 HTMLElement .我希望 ref 类型是分配兼容的,因为它们显然有重叠。

这里的正确方法是什么,无需更改成员变量以使用 HTMLDivElement ?

最佳答案

这并不是我原来问题的真正答案,而是一个简单的解决方法,它可以很好地完成工作:

const trigger = <div 
ref={this.triggerRef as React.RefObject<HTMLDivElement>}
className={className}
style={style}
/>

关于reactjs - 无法将 RefObject<HTMLDivElement> 分配给 RefObject<HTMLElement> 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61102101/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com