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:
dart
MyState global;
class MyStateful extends StatefulWidget {
@override
MyState createState() {
global = MyState();
return global;
}
}
dart
class MyStateful extends StatefulWidget {
@override
MyState createState() => MyState()..field = 42;
}
dart
class MyStateful extends StatefulWidget {
@override
MyState createState() => MyState(42);
}
GOOD:
dart
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:
analysis_options.yaml
yaml
linter:
rules:
- no_logic_in_create_state
除非另有说明,文档之所提及适用于 Dart 3.5.4 版本,本页面最后更新时间: 2024-08-02。 查看文档源码 或者 报告页面问题。