no_logic_in_create_state
Don't put any logic in createState.
This rule is available as of Dart 2.8.
Rule sets: flutter
Details
#DON'T put any logic in createState()
.
Implementations of createState()
should return a new instance of a State object and do nothing more. Since state access is preferred via the widget
field, passing data to State
objects using custom constructor parameters should also be avoided and so further, the State constructor is required to be passed no arguments.
BAD:
MyState global;
class MyStateful extends StatefulWidget {
@override
MyState createState() {
global = MyState();
return global;
}
}
class MyStateful extends StatefulWidget {
@override
MyState createState() => MyState()..field = 42;
}
class MyStateful extends StatefulWidget {
@override
MyState createState() => MyState(42);
}
GOOD:
class MyStateful extends StatefulWidget {
@override
MyState createState() {
return MyState();
}
}
Usage
#To enable the no_logic_in_create_state
rule, add no_logic_in_create_state
under linter > rules in your analysis_options.yaml
file:
linter:
rules:
- no_logic_in_create_state
Unless stated otherwise, the documentation on this site reflects Dart 3.6.0. Page last updated on 2024-07-03. View source or report an issue.