2017-07-12 5 views
1

Ich versuche, ein iframe einzubetten, die eine Vimeo mit frameborder und allowFullScreen Eigenschaften auf sie mit einem MyOwnComponent wie so spielt:Reagieren/Typoskript nicht iframe Eigenschaften erkennen

const MyOwnVimeoComponent =() => { 
return (
    <div> 
     <iframe 
      src="https://player.vimeo.com/video/VIMEOID" 
      width="640" 
      height="360" 
      frameborder="0" 
      webkitallowfullscreen 
      mozallowfullscreen 
      allowfullscreen 
     ></iframe> 
    </div> 
);} 

jedoch die Fehler, die ich bekommen ist:

[ts] Property 'frameborder' does not exist on type 'HTMLProps<HTMLIFrameElement>' 

Das Gleiche gilt für webkitallowfullscreen, mozallowfullscreen und allowfullscreen

nach der Erforschung anderer ähnlicher Probleme auf dem Stack Überlauf führte mich dazu, die lib.d.ts Datei von Typescript zu inspizieren und die <HTMLIFrameElement> Schnittstelle und Variablendeklarationen zu betrachten. Die Schnittstelle hat tatsächlich die Eigenschaften frameborder und allowfullscreen Typen, aber es wirft immer noch den Fehler. Ich würde verstehen, wenn es nur einen Fehler für die webkitallowfullscreen und mozallowfullscreen warf, aber ich bin im Allgemeinen verwirrt, was hier passiert.

Wenn mir jemand in die richtige Richtung zeigen kann, würde das sehr geschätzt werden.

Als Referenz hier ist das, was der relevante Teil der lib.d.ts Datei zu sein scheint:

interface HTMLIFrameElement extends HTMLElement, GetSVGDocument { 
align: string; 
allowFullscreen: boolean; 
allowPaymentRequest: boolean; 
border: string; 
readonly contentDocument: Document; 
readonly contentWindow: Window; 
frameBorder: string; 
frameSpacing: any; 
height: string; 
hspace: number; 
longDesc: string; 
marginHeight: string; 
marginWidth: string; 
name: string; 
noResize: boolean; 
onload: (this: HTMLIFrameElement, ev: Event) => any; 
readonly sandbox: DOMSettableTokenList; 
scrolling: string; 
src: string; 
vspace: number; 
width: string; 
addEventListener<K extends keyof HTMLIFrameElementEventMap>(type: K, listener: (this: HTMLIFrameElement, ev: HTMLIFrameElementEventMap[K]) => any, useCapture?: boolean): void; 
addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void; 
} 

declare var HTMLIFrameElement: { 
    prototype: HTMLIFrameElement; 
    new(): HTMLIFrameElement; 
} 

Antwort

1

Wie Sie in der lib.d.ts Datei sehen kann, sollte es frameBorder, nicht frameborder sein.

Mach dir keine Sorgen, es hat eine Weile gedauert, bis ich es entdeckt habe!

Verwandte Themen