我创建了以下无状态小部件来在我的 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)