dart - 如何在构建方法之外访问 State 类中的 Stateful 小部件变量?
问题描述
我正在尝试访问在_UpdateNotesState 的代码中声明的“updateNotesModel”变量。我发现你可以使用'widget'关键字来完成它,如下面的脚手架所示。但这里的问题是我试图访问构建方法之外的变量,以便为 TextEditingController 提供默认值。我怎样才能做到这一点?
class UpdateNotes extends StatefulWidget {
final NotesModel updateNotesModel;
UpdateNotes({Key key, this.updateNotesModel}): super(key: key);
@override
_UpdateNotesState createState() => _UpdateNotesState();
}
class _UpdateNotesState extends State<UpdateNotes> {
TextEditingController _titleController =
new TextEditingController(text: widget.updateNotesModel.someValue); //getting an error
}
@override
Widget build(BuildContext context) {
return Scaffold(
var a = widget.updateNotesModel.someValue
.
.
.
)
}
}
解决方案
你可以这样做initState
:
class _UpdateNotesState extends State<UpdateNotes> {
TextEditingController _titleController = new TextEditingController();
@override
void initState() {
_titleController.text= widget.updateNotesModel.someValue;
super.initState();
}
}
推荐阅读
- c - C shuffle 2D 数组
- python - Matplotlib 不绘制负值:极具误导性
- sapui5 - 如何有效地重置绑定控制值?
- python - Python过滤数据
- debugging - Flutter:一个程序在调试模式下运行良好,但在发布后就不行,为什么?
- javascript - 如何获取复选框的动态生成 id 以查看复选框是否被选中?
- java - 参数值 [1] 与预期类型不匹配
- sap - IDOC 合作伙伴配置文件中的消息功能和消息变体是什么?
- c++ - 如何识别阻碍我的程序在 32 核 CPU 上良好扩展的瓶颈?
- azure-devops - 如何注销 tf.exe 并通过启用 2FA 的另一个帐户登录?