Android: si la declaración en Flutter Future Builder acepta solo =

CorePress2024-01-24  8

 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! :)

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare