小编Soh*_*ail的帖子

Flutter IFrameElement 不更改源

我创建了以下无状态小部件来在我的 Flutter WPA 中显示一些 Web 内容。它的父级是全状态的,并在_frameUrl更改时重建此小部件。但这只是第一次发生。之后,当父级更改时_frameUrl,我可以在日志中看到小部件正在重建并获得新的 URL,但它仍然使用第一次给出的旧 URL 重新加载。

import 'package:flutter/material.dart';
import 'dart:html';
import 'package:universal_ui/universal_ui.dart';

class HtmlFrame extends StatelessWidget {
  var _iframeElement;
  final String _frameUrl;

  HtmlFrame(this._frameUrl);

  @override
  Widget build(BuildContext context) {
    print("Frame build: $_frameUrl");

    _iframeElement = IFrameElement();
    _iframeElement.height = '500';
    _iframeElement.width = '500';
    _iframeElement.src = _frameUrl;
    _iframeElement.style.border = 'none';
    _iframeElement.allowFullscreen = true;

    // ignore: undefined_prefixed_name
    ui.platformViewRegistry.registerViewFactory(
      'iframeElement',
      (int viewId) => (_iframeElement as IFrameElement),
    );

    return HtmlElementView(
      key: UniqueKey(),
      viewType: 'iframeElement',
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

日志如下所示:

### First …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-web

1
推荐指数
1
解决办法
2050
查看次数

标签 统计

flutter ×1

flutter-web ×1