首页 > 解决方案 > 如何在构建方法之外访问 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
     .
     .
     .
     )
    }
}

标签: dartflutter

解决方案


你可以这样做initState

class _UpdateNotesState extends State<UpdateNotes> {
  TextEditingController _titleController = new TextEditingController(); 

  @override
  void initState() {
    _titleController.text= widget.updateNotesModel.someValue;
    super.initState();
  }
}

推荐阅读