Как добавить и использовать ключ в конструкторах пользовательских виджетов

#flutter #dart #constructor #flutter-widget

Вопрос:

Я получил уведомление (не об ошибке) о Use key in widget constructors. том, что, допустим, у меня есть такой класс без состояния :

 class TeaTile extends StatelessWidget {   final TheTea? tea;  const TeaTile({this.tea}); //the warning in hire!   @override  Widget build(BuildContext context) {  return Container();  } }  

в базовом формате без сохранения состояния есть ключ, подобный этому :

 class TeaTile extends StatelessWidget {  const TeaTile({ Key? key }) : super(key: key); //this one   @override  Widget build(BuildContext context) {  return Container();  } }  

Я знаю, как отключить правило ключа use_key_in_widget_constructors: false . но я не хочу этого делать. итак, как я добавляю key в

 final TheTea? tea;  const TeaTile({this.tea});  

чтобы решить проблему с предупреждением?

Ответ №1:

Вы можете просто использовать:

 final TheTea? tea; const TeaTile({ Key? key, this.tea }) : super(key: key);  

В основном комбинация того и другого, вы все еще принимаете именованный параметр key , который передаст его значение суперконструктору, и другой именованный параметр tea , который установит ваше конечное значение переменной.