颤振未来构建器中的 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】:ent
或 tp1
都是字符串。请记住,>
运算符仅适用于双精度数和整数。因此,您可以做的是将该 String 解析为 double 或 int,然后继续进行其余操作。像这样:
double.parse(ent);
int.parse(tp1);
然后,它会正常工作! :)
【讨论】:
以上是关于颤振未来构建器中的 if 语句仅接受 =的主要内容,如果未能解决你的问题,请参考以下文章