es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flutter Getx: el tipo ‘double’ no es un subtipo del tipo ‘RxDouble’

Estoy usando el paquete Getx en mi aplicación de Flutter. Quiero actualizar un valor double, pero me muestra un error.

Aquí está mi controlador de Getx:

class CustomWebViewCTRL extends GetxController {
  RxDouble progress = 0.0.obs;

  onProgress(pro) {
    progress = (pro / 100);
  }
}

Y luego intento llamarlo en mi pantalla de inicio usando Obx(()=>) y también GetBuilder. Ninguno de los dos funciona para mí. Dice:

“El tipo de argumento ‘RxDouble’ no se puede asignar al tipo de parámetro ‘double?'”

Aquí tienes un ejemplo (donde quiero usarlo):

GetBuilder<customwebviewctrl>(builder: (controller) {
  return LinearProgressIndicator(
    value: controller.progress,
    color: Colors.black,
    backgroundColor: Colors.amber,
    valueColor: const AlwaysStoppedAnimation<color>(Colors.green),
  );
}),

¿Cómo puedo solucionarlo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema aquí es que RxDouble es una clase observable provista por el paquete Getx, que implementa la interfaz RxInterface. No es lo mismo que un tipo double regular.

    Para solucionar este error, necesitas convertir RxDouble a un tipo double regular antes de pasarlo como argumento. Puedes hacer esto utilizando la propiedad .value de la clase RxDouble.

    Aquí está el código actualizado:

    GetBuilder<customwebviewctrl>(builder: (controller) {
      return LinearProgressIndicator(
        value: controller.progress.value, // convertir a double usando .value
        color: Colors.black,
        backgroundColor: Colors.amber,
        valueColor: const AlwaysStoppedAnimation<color>(Colors.green),
      );
    }),
    

    Con este cambio, el error debería resolverse y el indicador de progreso debería funcionar como se espera.

Comments are closed.