Sen*_*ran 77
这篇文章摘自这里并进行了修改
最近,flutter 团队创建了一个名为flutter_lintsanalysis_options.yaml的新包,并且默认将其添加到您的包中。
要了解有关 flutter lints 包的更多信息,请参阅此文档(flutter lints 包简介)。
有多种方法可以消除此prefer const with constant constructors警告。
您可以在文件顶部添加忽略行注释。如果您想从文件中删除警告。
// ignore_for_file: prefer_const_constructors
import 'dart:async';
import 'package:flutter/material.dart';
Run Code Online (Sandbox Code Playgroud)
否则,如果您想删除该特定行的警告,请在该行的顶部添加忽略行注释。
AppBar(
// ignore: prefer_const_constructors
title:Text('Register'),
),
Run Code Online (Sandbox Code Playgroud)
这是禁用该规则的最简单方法。
另一种是您可以简单地从文件中删除以下行analysis_options.yaml。
include: package:flutter_lints/flutter.yaml
Run Code Online (Sandbox Code Playgroud)
但最好保留该行并在analysis_options.yaml文件中添加一些规则(这是我根据我的研究得出的个人意见)。
为了避免出现prefer const with constant constructors警告,请将此规则添加prefer_const_constructors : false到analysis_options.yaml文件中。
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
Run Code Online (Sandbox Code Playgroud)
还有其他规则可以帮助您使代码变得更好。如果您愿意,您可以添加以下一些规则(来自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
Run Code Online (Sandbox Code Playgroud)
iDe*_*ode 16
这是因为flutter_lintsFlutter 2.3.0 之后创建的新项目中隐式添加了该包。
此问题的三种可能的解决方案。
从整个项目中删除警告。
打开analysis_options.yaml文件并添加以下 linter 规则:
include: package:flutter_lints/flutter.yaml
linter:
rules:
prefer_const_constructors: false
Run Code Online (Sandbox Code Playgroud)
删除该文件中的警告
include: package:flutter_lints/flutter.yaml
linter:
rules:
prefer_const_constructors: false
Run Code Online (Sandbox Code Playgroud)
要删除该行中的警告:
// ignore_for_file: prefer_const_constructors
SizedBox();
Run Code Online (Sandbox Code Playgroud)
Pan*_*kam 13
在构造函数前面添加const关键字应该会导致警告消失。如果一个类是不可变的,那么将其构造函数设置为 const 构造函数通常是一个好主意。
好版本:
@immutable
class A {
final a;
const A(this.a);
}
Run Code Online (Sandbox Code Playgroud)
错误版本:
@immutable
class A {
final a;
A(this.a);
}
Run Code Online (Sandbox Code Playgroud)
小智 9
一个简单的解决方案是在正确的位置添加“const”一词:因此替换:
appBar: AppBar(title: Text('Orange Valley CAA')),
Run Code Online (Sandbox Code Playgroud)
和
appBar: AppBar(title: const Text('Orange Valley CAA')),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46417 次 |
| 最近记录: |