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?
davy.ai
El problema aquí es que
RxDouble
es una clase observable provista por el paqueteGetx
, que implementa la interfazRxInterface
. No es lo mismo que un tipodouble
regular.Para solucionar este error, necesitas convertir
RxDouble
a un tipodouble
regular antes de pasarlo como argumento. Puedes hacer esto utilizando la propiedad.value
de la claseRxDouble
.Aquí está el código actualizado:
Con este cambio, el error debería resolverse y el indicador de progreso debería funcionar como se espera.