Управление объектом WebView в Electron с помощью машинописи - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь создать экземпляр веб-просмотра с использованием машинописи.

Я использую шаблон реагирования на машинопись электронагора.

Я попробовал следующее:

import {Component} from 'react';
import * as React from 'react';
import {WebviewTag} from 'electron';

class MediaWebView extends Component<{ url: string }, {}> {

  renderWebVierw() {
    const myWebView: WebviewTag /* error here */ =
      (<webview src={this.props.url}
                autosize='on'
                nodeintegration='on'
                disablewebsecurity='on'
                webpreferences='allowRunningInsecureContent'
                style={webViewStyle}
      />);
    return myWebView;
  }

Это делает веб-просмотр, но выдает следующую ошибку: TS2322: Type 'Element' is not assignable to type 'WebviewTag'. Property 'addEventListener' is missing in type 'Element'.

Я не могу подписываться на события или вводить код в веб-просмотр.

Я не знаю, какой тип мне назначать, но я не могу его найти.

Как правильно реализовать веб-просмотр и иметь доступ к его методам , используя машинопись ?

1 Ответ

0 голосов
/ 04 декабря 2018
const webview: WebViewTag = (<webview />) as WebViewTag;

Была такая же проблема. Проблема в том, что без as компилятор не знает, что вы делаете, возвращает объект WebViewTag, а левой части уравнения все равно, потому что WebViewTag наследуется от HtmlElement. В этом случае as SomeClass приведет объект к тому типу, к которому вы пытаетесь привести его, и, если типы совпадают, то он вернет объект, если нет, просто вернет ноль.

...