Flutter WebViewPlus报错:invalid constant value 问题求助
解决Dart中WebViewPlus的"Invalid constant value"错误
问题出在你给Scaffold加了const关键字。const要求组件的所有子元素和参数都必须是编译时常量,但你传入的onWebViewCreated是一个匿名函数(闭包),闭包不属于编译时常量范畴,所以会触发"Invalid constant value"错误。
只需要去掉Scaffold前面的const即可解决问题,修正后的代码如下:
@override Widget build(context) { return Scaffold( backgroundColor: Colors.white, body: WebViewPlus( javascriptMode: JavascriptMode.unrestricted, onWebViewCreated: (controller) { controller.loadString("<html lang=\"en\"><body>hello world</body></html>"); }, ), ); }
补充说明:
- 只有当组件的所有参数都是固定的编译时常量(比如
Colors.white、JavascriptMode.unrestricted这类枚举/预定义常量)时,才能用const修饰组件。 - 去掉
const后,backgroundColor和javascriptMode这些常量参数依然会被Dart编译器优化,不会影响性能。
内容的提问来源于stack exchange,提问作者AJ Gottes
相关产品推荐
相关产品推荐

