Làm cách nào để viết điều kiện if trong thuộc tính widget?

lập trình


Tôi muốn sử dụng điều kiện if trong tiện ích biểu tượng nhưng Dart lại báo lỗi. Nên sử dụng thế nào cho đúng? Cảm ơn.

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

Những gì tôi đã thử:

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

Giải pháp 1

Thật không may, bạn không thể viết câu lệnh if trực tiếp bên trong thuộc tính widget của mình như thể bạn đang viết bằng phương thức hoặc hàm của mình. Nhưng có một số cách để bạn có thể viết câu lệnh có điều kiện bên trong tiện ích của mình. Bạn có thể sử dụng toán tử ternary (condition ? expr1 : expr2) để đạt được hiển thị có điều kiện trong thuộc tính widget, như bạn đã đề cập đến những gì bạn đã thử. Đây là liên kết tham khảo để sử dụng một số giải pháp thay thế khác để sử dụng bên trong các thuộc tính tiện ích.
Flutter if else: Top 3 cách bạn cần biết (Code) [January 2024] – FlutterBeads[^]

コメント

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