Tengo una decoración que deseo cambiar en función de un retorno de valor de firebase.
Actualmente, tengo mi decoración como a continuación.
decoration: const BoxDecoration( border: Border( left: BorderSide( color: getColor(task.status), width: 5))),Esta es mi declaración de cambio que esperaba devolvería el color correcto
Color getColor(Color status) { switch (status.toString()) { case 'Draft': return const Color.fromRGBO(255, 203, 51, 1); case 'Posted': return const Color.fromRGBO(10, 217, 163, 1); case 'Offered': return const Color.fromRGBO(20, 152, 204, 1); case 'Assigned': return const Color.fromRGBO(14, 116, 178, 1); case 'Overdue': return const Color.fromRGBO(222, 80, 66, 1); default: return const Color.fromRGBO(144, 163, 167, 1); } }getColor(Color status)Este método anterior dice que se supone que debe pasar el tipo de Color y luego está tratando de convertirlo en una cadena y combinarlo con "Borrador", "Publicado", etc. No hay colores con ese nombre, amigo.
Primero, si recibe un error como "Valor constante no válido". Elimine const de su código. No es necesario.
Su método getColor() se ve bien y debería funcionar como lo espera. Solo necesita pasar el valor correcto (puede que no sea el tipo de color, pero debería funcionar una cadena simple).
Probé tu código en flutter dev y funciona.