Bagaimana cara menulis kondisi if di properti widget?

pemrograman


Saya ingin menggunakan kondisi if di widget ikon, tetapi Dart memberikan kesalahan. Bagaimana cara menggunakannya dengan benar? Terima kasih.

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

Apa yang saya coba:

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

Solusi 1

Sayangnya, Anda tidak dapat menulis pernyataan if secara langsung di dalam properti widget seolah-olah Anda sedang menulis dalam metode atau fungsi Anda. Namun ada beberapa cara untuk menulis pernyataan kondisional di dalam widget Anda. Anda dapat menggunakan operator ternary (kondisi ? expr1 : expr2) untuk mencapai rendering bersyarat dalam properti widget, seperti yang Anda sebutkan apa yang telah Anda coba. Berikut ini tautan referensi untuk menggunakan beberapa solusi alternatif lain untuk digunakan di dalam properti widget.
Flutter if else: 3 cara teratas yang perlu Anda ketahui (Kode) [January 2024] – FlutterBeads[^]

コメント

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