Flutter 如何使用构造函数在有状态小部件中传递数据?
我是一个新手,我想我错过了一些关于构造函数和有状态小部件的信息。我尝试了很多方法,但总是有错误。我只想将数据传递到我的有状态小部件中,从那里进行操作 这是我的错误Flutter 如何使用构造函数在有状态小部件中传递数据?,flutter,flutter-widget,Flutter,Flutter Widget,我是一个新手,我想我错过了一些关于构造函数和有状态小部件的信息。我尝试了很多方法,但总是有错误。我只想将数据传递到我的有状态小部件中,从那里进行操作 这是我的错误 The instance member 'widget' can't be accessed in an initializer. Try replacing the reference to the instance member with a different expression 这是我的密码 class CreateEdu
The instance member 'widget' can't be accessed in an initializer.
Try replacing the reference to the instance member with a different expression
这是我的密码
class CreateEducatorEventForm extends StatefulWidget {
final DateTime day = DateTime.now();
final String favoriteId = '';
CreateEducatorEventForm(DateTime day, String favoriteId);
@override
_CreateEducatorEventFormState createState() =>
_CreateEducatorEventFormState();
}
class _CreateEducatorEventFormState extends State<CreateEducatorEventForm> {
final _formKey = GlobalKey<FormState>();
bool _isLoading = false;
String _eventName = '';
String _eventDescription = '';
DateTime _eventDateStart = widget.day;
DateTime _eventDateFinish = widget.day;
class CreateEducatorEventForm扩展StatefulWidget{
final DateTime day=DateTime.now();
最后一个字符串favoriteId='';
CreateEducatorEventForm(日期时间日,字符串favoriteId);
@凌驾
_CreateEducatorEventFormState createState()=>
_CreateEducatorEventFormState();
}
类_CreateEducatorEventFormState扩展状态{
final _formKey=GlobalKey();
bool_isLoading=false;
字符串_eventName='';
字符串_eventDescription='';
DateTime\u eventDateStart=widget.day;
DateTime\u eventDateFinish=widget.day;
您可以将其移动到initState
class _CreateEducatorEventFormState extends State<CreateEducatorEventForm> {
final _formKey = GlobalKey<FormState>();
bool _isLoading = false;
String _eventName = '';
String _eventDescription = '';
DateTime _eventDateStart;
DateTime _eventDateFinish;
@override
void initState() {
super.initState();
_eventDateStart = widget.day;
_eventDateFinish = widget.day;
}
}
class\u CreateEducatorEventFormState扩展状态{
final _formKey=GlobalKey();
bool_isLoading=false;
字符串_eventName='';
字符串_eventDescription='';
DateTime\u eventDateStart;
DateTime\u eventDateFinish;
@凌驾
void initState(){
super.initState();
_eventDateStart=widget.day;
_eventDateFinish=widget.day;
}
}
公平地说,除非您真的需要将其存储到您的状态中(例如,如果它真的参与了小部件的生命周期),您应该在需要时通过widget.day
引用它。它说getter day调用为null。可能逻辑中有一点错误是的,我真的需要它,它是一个表单小部件,在加载表单时显示数据。对,但请记住,您仍然可以在构建()中引用widget.day
函数。现在,如果您需要通过setState(({{u eventDateStart=…})
更改它,那么使用initState()
就像@Evan在他的回答中所说的那样是一种方法。