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;
}
**La declaración if funciona solo con la condición = y cuando uso > sigue ejecutando este error
La clase 'String' no tiene ningún método de instancia '>'.
Receptor: "1"
Intenté llamar: >("1.25454")
**
------------------------------------
Convierte tus valores de cadena al doble
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;
}
});
2
Acabo de enfrentar otro problema que quiero volver a resolver.coloque int con índice así var tp1 = double.parse(snapshot.data[index]["currentprice"]);
–
usuario15456717
26/03/2021 a las 21:44
¿Cómo puedo hacer eso?
–
usuario15456717
26/03/2021 a las 21:45
------------------------------------
Ent o tp1 es una cadena. Recuerde que el > El operador solo funciona con dobles y números enteros. Entonces, lo que puedes hacer es analizar esa cadena como doble o int aY luego continúe con el resto de la operación. Así:
double.parse(ent);
int.parse(tp1);
¡Y entonces funcionará perfectamente! :)