我是 Flutter 的初学者。我正在制作一种购物清单应用程序。 使用本教程 https://www.youtube.com/watch?v=ZnevdXDH25Q 我正在尝试使用 GetX 进行状态管理。
我有一个名为“Items”的类,它有一些属性。我创建了一个项目列表,稍后将显示为卡片。
我无法理解这一点。
这是我现在工作的课程的代码。
class ItemsController extends GetxController {
RxList<Item> items = [].obs;
@override
void onInit() {
super.onInit();
loadItems();
}
loadItems() {
items = [
Item(
name: 'olio',
description: '',
quantity: 1,
),
Item(
name: 'mozzarella',
description: 'di bufala',
quantity: 4,
),
];
items.assignAll(items);
}
}
我几乎尝试了所有可能的方法,但每次 Android Studio 都会出现此错误: 列表文字类型“List”不是预期的类型“RxList”。
我也尝试将 .cast<Item>();
附加到“items”列表,但我收到了消息
type 'RxList<dynamic>' is not a subtype of type 'RxList<Item>'
答案 0 :(得分:1)
RxList<Item> items = <Item>[].obs;
或者只是
var items = [].obs;
loadItems() {
List<Item> newItems = [
Item(
name: 'olio',
description: '',
quantity: 1,
),
Item(
name: 'mozzarella',
description: 'di bufala',
quantity: 4,
),
];
items.assignAll(newItems);
}
或者干脆
loadItems() {
items.assignAll([
Item(
name: 'olio',
description: '',
quantity: 1,
),
Item(
name: 'mozzarella',
description: 'di bufala',
quantity: 4,
),
]);
}
一开始有点混乱,但你会一点一点地得到
答案 1 :(得分:0)
忘记导入
import 'package:get/get.dart';
所以只需添加这一行 .obs 就可以了