es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pasando datos a un State desde su Statefulwidget.

Este es mi código y quiero acceder a la propiedad “initialValue” del StatefulWudget pero por alguna razón marca un error en counter = widget.initialValue.

La imagen con el error de VS Code.

Estoy siguiendo un curso y no sé si algo ha cambiado en las nuevas versiones, porque todas las preguntas que encontré usan el mismo código.

class MyCounter extends StatefulWidget{
  final int initialValue;

  const MyCounter({Key? key, this.initialValue = 0}) : super(key: key);

  @override
  State createState(){
    return MycounterState();
  }
}

class MycounterState extends State{
  int counter = 0;

  @override
  void initState() {
    super.initState();
    counter = widget.initialValue;
  }
...

¿O tengo algún error en una parte diferente del código?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error probablemente se debe a un error tipográfico en el nombre de la clase State. En la declaración de clase para MycounterState, el deletreo del nombre de la clase es incorrecto, debería ser “MyCounterState” con una C mayúscula. Así que actualiza el código de la siguiente manera:

    class MyCounter extends StatefulWidget{
    
    
     final int initialValue;
    
      const MyCounter({Key? key, this.initialValue = 0}) : super(key: key);
      @override
      State createState(){ //puede ser lambda => MyCounterState();
        return MyCounterState();
      }
    }
    
    class MyCounterState extends State{
    
      int counter = 0;
    
      @override
      void initState() {
        // TODO: implement initState
        super.initState();
        counter = widget.initialValue;
      }
      ...
    

    Una vez que corrijas el nombre de la clase de estado, el error debería resolverse y el código debería funcionar como se espera.

Comments are closed.