目次

no_logic_in_create_state

createStateにロジックを記述しないでください。

このルールはDart 2.8以降で利用可能です。

ルールセット: flutter

詳細

#

禁止 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