Skip to main content

use_key_in_widget_constructors

Constructors for public widgets should have a named 'key' parameter.

Description

#

The analyzer produces this diagnostic when a constructor in a subclass of Widget that isn't private to its library doesn't have a parameter named key.

Example

#

The following code produces this diagnostic because the constructor for the class MyWidget doesn't have a parameter named key:

dart
import 'package:flutter/material.dart';

class MyWidget extends StatelessWidget {
  MyWidget({required int height});
}

The following code produces this diagnostic because the default constructor for the class MyWidget doesn't have a parameter named key:

dart
import 'package:flutter/material.dart';

class MyWidget extends StatelessWidget {}

Common fixes

#

Add a parameter named key to the constructor, explicitly declaring the constructor if necessary:

dart
import 'package:flutter/material.dart';

class MyWidget extends StatelessWidget {
  MyWidget({super.key, required int height});
}