【问题标题】:React Typescript element types反应 Typescript 元素类型
【发布时间】:2016-12-25 23:12:35
【问题描述】:

React 中以下语句的类型是什么?

let element = <div>Blah blah</div>

我以为我可以使用element: HTMLElement,但是当我这样做时,我得到了Property 'accessKey' is missing in type 'Element'

另一个导入的组件呢?

import Row from './partials/Row';
let row = <Row cols={cols} />

【问题讨论】:

    标签: javascript reactjs typescript


    【解决方案1】:

    div jsx 元素的类型是HTMLFactory&lt;HTMLDivElement&gt;

    您的引用不是针对浏览器中的实际 dom 元素,而是针对表示可能尚未呈现的此类元素的 react 元素。

    应该通过props访问html属性:

    let element = <div>Blah blah</div>
    console.log(element.props.accessKey);
    

    如果您想获取 dom 元素,可以使用ref attribute

    当在 HTML 元素上使用 ref 属性时,ref 回调 接收底层 DOM 元素作为其参数

    所以:

    let divElement: HTMLDivElement;
    let element = <div ref={ (el) => { divElement = el; console.log(el); } }>Blah blah</div>
    

    在导入的Row 的情况下,您再次引用了具有 dom 表示的 react 元素。
    它具有哪些属性或方法取决于类本身。

    【讨论】:

    • 好吧,HTMLDivElement 现在说属性align 丢失了。我试图更改为 span,但我得到 addEventListener is missing。
    • 你确定吗?对我来说divElement.align 存在。它是lib.d.ts 的一部分
    猜你喜欢
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 2022-08-23
    • 2017-03-31
    • 1970-01-01
    • 2018-03-13
    • 2023-03-30
    • 2018-12-11
    相关资源
    最近更新 更多