flutter - 为什么我的变量在 StatelessWidget 中成功更改,即使我收到警告
问题描述
这是警告:
此类(或此类继承自的类)被标记为“@immutable”,但其一个或多个实例字段不是最终的:MyWidget.myVar
控制台告诉我该变量必须是最终的。我怀疑如果我想更改变量,我应该将我的小部件更改为有状态的,但对我来说这没有意义,因为代码按预期工作。当我更改变量时,我不想更改屏幕上的任何内容,我只想稍后使用它。
我在做什么是错的?如果没有,我该如何禁用此警告?
import 'package:flutter/material.dart';
void main() {
runApp(
MaterialApp(
home: MyWidget(),
),
);
}
class MyWidget extends StatelessWidget {
String myVar;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
MaterialButton(
child: Text('Click me do change variable'),
onPressed: () {
myVar = 'Clicked!';
},
),
MaterialButton(
child: Text('Click me to print the variable'),
onPressed: () {
print(myVar);
},
),
],
),
);
}
}
解决方案
您收到警告是因为扩展 StatelessWidget 的类中的所有字段都应该是最终的。
final
通过在声明之前添加关键字来修复警告,type
如下所示:
final String myVar;
从文档中。
StatelessWidget 类。不需要可变状态的小部件。
https://docs.flutter.io/flutter/widgets/StatelessWidget-class.html
我希望这回答了你的问题
推荐阅读
- typescript - 基于打字稿中的参数值有条件地键入函数
- python - 为多个列表创建一个函数并正确分组列表元素
- parsing - 使用 CHR 解析(约束处理规则)
- node.js - 为什么 NodeJS ssl 服务器使用 (52) 来自服务器的空回复来响应 cURL?
- c# - 为 1:2 关系使用按层次结构继承的表
- wordpress - Wordpress 小部件中缺少 jQuery
- typescript - 如何根据数组长度推断函数参数的数量
- reactjs - 在 React Devtools 分析器中搜索组件?
- reactjs - React 和 dexie:功能组件中出现“无效的钩子调用”错误
- excel - 在列和行中循环以查找和复制值