I've started getting a warning every time I create a new class.
Use key in widget constructors.
Prefer const with constant constructor.
and so on. Where these errors are coming from and how do I get rid of it?
I've started getting a warning every time I create a new class.
Use key in widget constructors.
Prefer const with constant constructor.
and so on. Where these errors are coming from and how do I get rid of it?
If you don't want to ignore the warning, just do a super.key
FooPage({super.key});
Open analysis_options.yaml
file which is located at the root of your project:
include: package:flutter_lints/flutter.yaml
# Add these lines
linter:
rules:
use_key_in_widget_constructors: false
To disable the rule for a specific file, put this line anywhere in your code.
// ignore_for_file: prefer_const_constructors
As @Sigiria suggested in the comments, you can run:
dart fix --apply
Recently Flutter team created a new package flutter_lints
and it's added to your analysis_options.yaml
file by default for newly created project.
You can simply remove the following line from your analysis_options.yaml
file:
include: package:flutter_lints/flutter.yaml
However, I would suggest you to at least have some rules in it, for example, you can add these rules (from pedantic
) and remove the one you don't want.
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
add this in your code right before the @override line
const FooPage({Key? key}) : super(key: key);
always add const before the widget command like EdgeInsets, spacer, SizedBox, BorderRadius etc
© 2022 - 2024 — McMap. All rights reserved.
Ctrl+.
to 'quick fix' the error and add Key to the class constructor in many cases. That said, i disabled the lint because most of my components are not intended to be re-used and having a key argument is pointless. You can always add one later. – Disturbingcontrol
+enter
to add that code. – Assentor