¿Cómo se puede escribir la condición if en la propiedad del widget?

programación


Quiero usar la condición if en el widget de ícono, pero Dart da un error. ¿Cómo se debe utilizar correctamente? Gracias.

class Cell extends StatelessWidget {
  const Cell({super.key, this.caseTrend = false});

  final bool caseTrend;

  @override
  Widget build(BuildContext context) {
    return Container(
      alignment: Alignment.center,
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          const Text("23.410"),
          Icon(
          if(caseTrend) { //<== getting error here: Expected an identifier.dart Expected to find ')'.
            Icons.trending_up,
            color: Colors.green,
          } 
          else
          {
            Icons.trending_down,
            color: Colors.red,
          },
            size: 24, 
          )
        ],
      ),
    );
  }
}

Lo que he probado:

class Cell extends StatelessWidget {
  const Cell({super.key, this.caseTrend = false});

  final bool caseTrend;

  @override
  Widget build(BuildContext context) {
    return Container(
      alignment: Alignment.center,
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          const Text("23.410"),
          Icon( //This way working well but using conditions two times
           caseTrend ? Icons.trending_up : Icons.trending_down, 
           color: caseTrend ? Colors.green : Colors.red,
            size: 24, 
          )
        ],
      ),
    );
  }
}

Solución 1

Desafortunadamente, no puede escribir una declaración if directamente dentro de las propiedades de su widget como si estuviera escribiendo en su método o función. Pero hay algunas formas de escribir una declaración condicional dentro de su widget. Puede utilizar el operador ternario (condición? expr1: expr2) para lograr la representación condicional dentro de la propiedad del widget, como mencionó lo que ha probado. Aquí está el enlace de referencia para usar otras soluciones alternativas para usar dentro de las propiedades del widget.
Flutter si no: Las 3 principales formas que necesitas saber (Código) [January 2024] – FlutterBeads[^]

コメント

タイトルとURLをコピーしました