はじめに
先日、Flutterで開発していてconst classを書いていたところ「Avoid field initializers in const classes.」というinformationが出たのでメモ。
環境
- Flutter : 2.2.3
- Dart : 2.13.4
インフォメーションの意味は?
avoid_field_initializers_in_const_classes
要するに、const class内ではfieldを初期化するのは避けて、ゲッターを使って、無駄なフィールドを割り当てないようにしましょうってことらしいです。
対応方法
対応前
例をあげます
下記のようなconst classを書いていると
import 'package:flutter/material.dart';
class TestPage extends StatelessWidget {
const TestPage({Key? key}) : super(key: key);
final List<String> messages = const <String>[
'Hello World!',
'Goodbye World!',
];
@override
Widget build(BuildContext context) {
return Text(messages[0]);
}
}
messagesのところに「Avoid field initializers in const classes.」というInformationがでます。
対応後
対応後は、フィールドで初期化していたものをgetterに変えます。
import 'package:flutter/material.dart';
class TestPage extends StatelessWidget {
const TestPage({Key? key}) : super(key: key);
List<String> get messages => const <String>[
'Hello World!',
'Goodbye World!',
];
@override
Widget build(BuildContext context) {
return Text(messages[0]);
}
}
さいごに
別にええやん。。。
コメント