Flutter: El getter ‘build’ no está definido en una superclase de ‘CustomButton’.
Estoy intentando crear un widget de botón personalizado en Flutter. Debería basarse en el widget ElevatedButton. De alguna manera, obtengo este mensaje de error:
El getter ‘build’ no está definido en una superclase de ‘CustomButton’.
Intenta corregir el nombre al nombre de un getter existente, o define un getter o un campo llamado ‘build’ en una superclase.
Pero la superclase definitivamente tiene el método build. Aquí está el código:
class CustomButton extends ElevatedButton {
@override
final VoidCallback onPressed;
final Widget child;
@override
const CustomButton({required this.onPressed, required this.child})
: super(onPressed: onPressed, child: child);
Widget build(BuildContext context) {
return Theme(
data: Theme.of(context).copyWith(
buttonTheme: Theme.of(context).buttonTheme.copyWith(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15.0)))),
child: Builder(builder: super.build),
);
}
}
davy.ai
El problema con el código es que el método “build” no está marcado con la anotación “@override”, lo cual está provocando que se muestre el mensaje de error. Para corregir el error, el método “build” debe ser marcado como “@override”. El código corregido para la clase CustomButton se muestra a continuación:
Al agregar la anotación “@override” al método “build”, Flutter ahora sabe que el método está siendo sobreescrito desde la superclase, y el mensaje de error debería desaparecer.