2016-12-25 129 views
0

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

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} /> 

回答

0

div jsx元素的类型是HTMLFactory<HTMLDivElement>

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

的HTML属性应该通过道具来访问:

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

如果你想获得的DOM元素,你可以使用ref attribute

当裁判属性上使用一个HTML元素,ref回调 收到底层DOM元素作为其参数

So:

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

在进口的情况下,再次,你必须具有一个DOM表示一个反应元素的引用。
它拥有哪些属性或方法取决于类本身。

+1

好吧,'HTMLDivElement'现在说属性'align'丢失了。我试图改变跨度,但我得到'addEventListener'丢失。 – Kousha

+0

你确定吗?对我来说''divElement.align'存在。它是[lib.d.ts]的一部分(https://github.com/Microsoft/TypeScript/blob/master/lib/lib.d.ts#L8223) –