颤振未来构建器中的 if 语句仅接受 =

Posted

技术标签:

【中文标题】颤振未来构建器中的 if 语句仅接受 =【英文标题】:if statment in flutter future builder accept just = 【发布时间】:2021-06-23 16:24:01 【问题描述】:
 FutureBuilder(
      future: getData,
      builder: (BuildContext, AsyncSnapshot snapshot) 
        var sn = snapshot.data;
        var tp1 = snapshot.data[0]["currentprice"];
        var ent = snapshot.data[0]["entryprice"];
        Color col = Colors.blue;
        if (ent > tp1) 
          col = Colors.red;
         else 
          col = Colors.grey;
        

**if 语句仅适用于 = 条件,当我使用 > 时继续运行此错误

类“String”没有实例方法“>”。 接收器:“1” 尝试调用:>("1.25454")

**

【问题讨论】:

【参考方案1】:

将您的 String 值转换为 double

      FutureBuilder(
          future: getData,
          builder: (BuildContext, AsyncSnapshot snapshot) 
            var sn = snapshot.data;
          //convert your String to double
            var tp1 = double.parse(snapshot.data[0]["currentprice"]);
            var ent = double.parse(snapshot.data[0]["entryprice"]);
            Color col = Colors.blue;
            if (ent > tp1) 
              col = Colors.red;
             else 
              col = Colors.grey;
            
           );

【讨论】:

只是面临另一个问题,我想用 index 替换 int,就像 var tp1 = double.parse(snapshot.data[index]["currentprice"]); 怎么会这样【参考方案2】:

enttp1 都是字符串。请记住,> 运算符仅适用于双精度数和整数。因此,您可以做的是将该 String 解析为 double 或 int,然后继续进行其余操作。像这样:

double.parse(ent);

int.parse(tp1);

然后,它会正常工作! :)

【讨论】:

以上是关于颤振未来构建器中的 if 语句仅接受 =的主要内容,如果未能解决你的问题,请参考以下文章

当我在我的应用程序中调用 API 时,它会向我显示数据作为响应,但在未来的构建器中,它无法向我显示数据

FLUTTER:如何在流构建器中使用导航器?

颤振应用程序中的多个列表构建器

如何在 css 中执行 if 语句? [复制]

MapStruct 未检测到构建器中的设置器

颤振步进器小部件 - 在各个步骤中验证字段