Directus api manager : gestion des doubles

Bonjour à tous,

Dans certaines table du Directus du mon projet j’ai créé des champs de type « Nombre décimal »

Quand j’utilise la lib directus_api_manager pour la création d’item, je définie le pararètre en question de la sorte :

double? get step => getValue(forKey: "step");
  set step(double? newStep) => setValue(newStep, forKey: "step");

Il semblerai que ceci pose problème car l’erreur suivante est affcihée au moment de télécharger les données :

_TypeError (type 'int' is not a subtype of type 'double?')

En utilisant dans Directus le type « Nombre décimal avec précision », il semblerait qu’il attende cette fois ci un String et non un int.

Quelqu’un a-t-il déjà eu le problème ? Comment faites vous pour gérer des nombre décimaux avec Directus et l’apimanager ?

Merci d’avance :slight_smile:

Bonjour à tous,

Je mets à jour ce poste avec les éléments trouvés sur stackoverflow et comment je m’en suis dépatouillé :

A priori dart n’est pas capable de détecter de manière « smart » si la chaine de caractère récupérée est un int ou un double.

Je pense donc que la méthode dynamic getValue({required String forKey}) de la bibliothèque de l’api manager renvoie par défaut systématiquement un int quand on mets dans un champs de directus un entier, entier long, décimal, décimal long…

Par conséquent il indique une erreur dans la classe DirectusItem en question quand on cherche à récupérer un double.

Dans mon code je n’utilise de toute façon pas directement les DirectusItem mais passe par un objet intermédiaire pour mon app (Ex : PlayerDirectusItem et Player).
J’ai donc déclaré un String dans la classe DirectusItem et je fais la conversion entre ces deux objets au sein de mon app (String->double et double->String).