GOOGLE ADS

samedi 30 avril 2022

Faire flotter la classe SQFlite en Json()

Je travaille actuellement sur une application où l'utilisateur peut stocker localement des données sur son appareil. C'est pourquoi j'utilise le package sqflite mais je rencontre des erreurs lors de la conversion de mes données de classe en Json. Voici le message d'erreur que j'obtiens:

Une valeur de type 'Set' ne peut pas être renvoyée par la méthode 'toJson' car elle a un type de retour de 'Map<String, Widget>'. à cause de cette ligne:

Map<String, Widget> toJson() => {
EntryFields.id = id,
EntryFields.name = name,
EntryFields.navigation = navigation,
};

C'est ma classe:

import 'package:flutter/material.dart';
const String tableFavs = 'favorites';
class EntryFields {
static late String id = '_id';
static late String name = '_name';
static late String navigation = '_navigation';
}
class Entries {
final int id;
final String name;
final Widget navigation;
Entries({
required this.id,
required this.name,
required this.navigation,
});
Map<String, Widget> toJson() => {
EntryFields.id = id,
EntryFields.name = name,
EntryFields.navigation = navigation,
};
}

et ceci est un extrait de ma base de données:

 Future<Entries> create(Entries entries) async {
final db = await instance.database;
final id = await db.insert(tableFavs, entries.toJson());
}


Solution du problème

vous ne pouvez pas stocker un widget dans la base de données, il devrait s'agir de Map<String, String> essayez de stocker les paramètres du widget sous forme de chaîne, pas le widget entier, vous pouvez stocker ces types double, chaîne, int, bool..

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...