Comment écrire une condition if dans la propriété du widget ?

la programmation


Je souhaite utiliser la condition if dans le widget d’icône, mais Dart donne une erreur. Comment l’utiliser correctement ? Merci.

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, 
          )
        ],
      ),
    );
  }
}

Ce que j’ai essayé :

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, 
          )
        ],
      ),
    );
  }
}

Solution 1

Malheureusement, vous ne pouvez pas écrire l’instruction if directement dans les propriétés de votre widget comme si vous écriviez dans votre méthode ou fonction. Mais il existe plusieurs façons d’écrire une instruction conditionnelle dans votre widget. Vous pouvez utiliser l’opérateur ternaire (condition ? expr1 : expr2) pour obtenir un rendu conditionnel dans la propriété du widget, comme vous l’avez mentionné ce que vous avez essayé. Voici le lien de référence pour utiliser d’autres solutions alternatives à utiliser dans les propriétés du widget.
Flutter if else : les 3 principales façons de savoir (Code) [January 2024] – Perles flottantes[^]

コメント

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