I am new to the dart(flutter) language.
I am getting this line
prefer const with constant constructors.
I don't know what's that and how to resolve that.
To avoid the prefer const with constant constructors warning add this rule prefer_const_constructors : false to the analysis_options. yaml file.
Dart supports the keyword const for object instantiation. If an object is declared as being instantiated via the const keyword, it's assigned a value at compile time. A constant is an instance that is initialized with one of the following: A value of a primitive type.
How to Ignore 'prefer const constructors' message in the current file only: To ignore this message in a specific file only, add the following line anywhere in your dart script file. We have added this line after importing, you can add anywhere you want in the file where you want to ignore 'const' error warning.
A const constructor is an optimization! The compiler makes the object immutable, allocating the same portion of memory for all Text('Hi!') objects. But not Text(Math. random()) though, as its value can't be determined at compile time!
This post is taken from here with modifications
Recently the flutter team created a new package called flutter_lints and it is added to your analysis_options.yaml
by default.
To know more about the flutter lints package see this document(Introduction to flutter lints package).
There are several ways to remove this prefer const with constant constructors
warning.
You can add the ignore line comment at the top of the file. if you want to remove the warning from the file.
// ignore_for_file: prefer_const_constructors
import 'dart:async';
import 'package:flutter/material.dart';
else if you want to remove the warning to that particular line, add the ignore line comment at the top of the line.
AppBar(
// ignore: prefer_const_constructors
title:Text('Register'),
),
This is the simplest way to disable the rule.
Another one is you can simply remove the following line from the analysis_options.yaml
file.
include: package:flutter_lints/flutter.yaml
But it's better to keep that line and add some rules in the analysis_options.yaml
file(it's my personal opinion based on my research).
To avoid the prefer const with constant constructors
warning add this rule prefer_const_constructors : false
to the analysis_options.yaml
file.
linter:
rules:
prefer_const_constructors : false
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
There are other rules that may help you to make your code good. You can add some of the following rules if you want(from pedantic).
linter:
rules:
- always_declare_return_types
- always_require_non_null_named_parameters
- annotate_overrides
- avoid_init_to_null
- avoid_null_checks_in_equality_operators
- avoid_relative_lib_imports
- avoid_return_types_on_setters
- avoid_shadowing_type_parameters
- avoid_single_cascade_in_expression_statements
- avoid_types_as_parameter_names
- await_only_futures
- camel_case_extensions
- curly_braces_in_flow_control_structures
- empty_catches
- empty_constructor_bodies
- library_names
- library_prefixes
- no_duplicate_case_values
- null_closures
- omit_local_variable_types
- prefer_adjacent_string_concatenation
- prefer_collection_literals
- prefer_conditional_assignment
- prefer_contains
- prefer_equal_for_default_values
- prefer_final_fields
- prefer_for_elements_to_map_fromIterable
- prefer_generic_function_type_aliases
- prefer_if_null_operators
- prefer_inlined_adds
- prefer_is_empty
- prefer_is_not_empty
- prefer_iterable_whereType
- prefer_single_quotes
- prefer_spread_collections
- recursive_getters
- slash_for_doc_comments
- sort_child_properties_last
- type_init_formals
- unawaited_futures
- unnecessary_brace_in_string_interps
- unnecessary_const
- unnecessary_getters_setters
- unnecessary_new
- unnecessary_null_in_if_null_operators
- unnecessary_this
- unrelated_type_equality_checks
- unsafe_html
- use_full_hex_values_for_flutter_colors
- use_function_type_syntax_for_parameters
- use_rethrow_when_possible
- valid_regexps
Adding the const
keyword in front of the constructor should cause the warning to go away. If a class is immutable, it is usually a good idea to make its constructor a const constructor.
Good Version:
@immutable
class A {
final a;
const A(this.a);
}
Bad Version:
@immutable
class A {
final a;
A(this.a);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With