Flutter Hive 商店颜色
Flutter Hive store color
我需要将颜色存储在我的 Hive 数据库中以便在我的电子商务应用程序中检索,
它给了我下面的错误,说我需要制作一个适配器,谁能告诉我如何制作一个彩色适配器?
part 'items_model.g.dart';
@HiveType(typeId: 0)
class Item {
@HiveField(0)
final String name;
@HiveField(1)
final double price;
@HiveField(2)
final String? description;
@HiveField(3)
var image;
@HiveField(4)
final String id;
@HiveField(5)
final String shopName;
@HiveField(6)
final List<Category> category;
@HiveField(7)
Color? color;
@HiveField(8)
int? quantity;
Item({
required this.category,
required this.image,
required this.name,
required this.price,
this.description,
required this.id,
required this.shopName,
this.color,
required this.quantity,
});
}
有谁知道如何生成或创建颜色适配器?因为我不知道如何
E/flutter ( 4621): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: HiveError: Cannot write, unknown type: MaterialColor. Did you forget to register an adapter?
我认为最简单的方法是存储颜色的 int
值。
这是一个例子。
final colorValue = Colors.blue.value; // colorValue is an integer here
所以你的 Hive
颜色可以这样存储
@HiveField(7)
int? colorValue;
然后,当您从存储中创建颜色时,在您的应用中它看起来像这样。
final item = Item(...however you initialize your Item);
final color = Color(item.colorValue);
我需要将颜色存储在我的 Hive 数据库中以便在我的电子商务应用程序中检索, 它给了我下面的错误,说我需要制作一个适配器,谁能告诉我如何制作一个彩色适配器?
part 'items_model.g.dart';
@HiveType(typeId: 0)
class Item {
@HiveField(0)
final String name;
@HiveField(1)
final double price;
@HiveField(2)
final String? description;
@HiveField(3)
var image;
@HiveField(4)
final String id;
@HiveField(5)
final String shopName;
@HiveField(6)
final List<Category> category;
@HiveField(7)
Color? color;
@HiveField(8)
int? quantity;
Item({
required this.category,
required this.image,
required this.name,
required this.price,
this.description,
required this.id,
required this.shopName,
this.color,
required this.quantity,
});
}
有谁知道如何生成或创建颜色适配器?因为我不知道如何
E/flutter ( 4621): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: HiveError: Cannot write, unknown type: MaterialColor. Did you forget to register an adapter?
我认为最简单的方法是存储颜色的 int
值。
这是一个例子。
final colorValue = Colors.blue.value; // colorValue is an integer here
所以你的 Hive
颜色可以这样存储
@HiveField(7)
int? colorValue;
然后,当您从存储中创建颜色时,在您的应用中它看起来像这样。
final item = Item(...however you initialize your Item);
final color = Color(item.colorValue);