🤷
【Flutter】StatefulWidgetにてlinterで「Don't put any logic in createState」
概要
FlutterでStatefulWidgetのクラスを書いている時、linterで以下のようなワーニングが表示されました。今回は、この原因とどう修正するかを書いてみます。

原因
こちらのstackoverflowの記事にある通り、StatefulWidgetのクラスでは、コンストラクタへパラメータを渡すことは推奨されていないようです。
変数を参照したい場合はno_logic_in_create_stateのドキュメントにある通り、widgetフィールドを通して行うのが適切だそうです。
修正後の実装
linterで該当の箇所を修正したら、以下の通りになります。
import 'package:flutter/material.dart';
class SampleApp extends StatefulWidget {
  final String title;
  const SampleApp({Key? key, required this.title}) : super(key: key);
  
  _SampleApp createState() => _SampleApp();
}
class _SampleApp extends State<SampleApp> {
  
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ),
        body: Column(
          children: const <Widget>[Text("test")],
        ));
  }
}
Discussion