跳到主要内容

no_logic_in_create_state

稳定版
Flutter

不要在 createState 中放置任何逻辑。

详细信息

#

不要createState() 中放置任何逻辑。

createState() 的实现应返回 State 对象的新实例,且不应执行其他操作。由于状态访问首选通过 widget 字段进行,因此应避免使用自定义构造函数参数将数据传递给 State 对象,并且进一步地,State 构造函数要求不传递任何参数。

不良示例

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);
}

良好示例

dart
class MyStateful extends StatefulWidget {
  @override
  MyState createState() {
    return MyState();
  }
}

启用

#

要启用 no_logic_in_create_state 规则,请在你的 analysis_options.yaml 文件的 linter > rules 下添加 no_logic_in_create_state

analysis_options.yaml
yaml
linter:
  rules:
    - no_logic_in_create_state

如果改用 YAML map 语法配置 linter 规则,请在 linter > rules 下添加 no_logic_in_create_state: true

analysis_options.yaml
yaml
linter:
  rules:
    no_logic_in_create_state: true