PR

[Flutter][Dart]「Avoid field initializers in const classes.」の対応方法

Flutter

はじめに

先日、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]);
  }
}

さいごに

別にええやん。。。

おすすめ参考書

コメント

タイトルとURLをコピーしました