Flutter - GetX:列表文字类型 'List<Item>' 不是预期类型 'RxList<Item>'
Flutter - GetX: The list literal type 'List<Item>' isn't of expected type 'RxList<Item>'
我是 Flutter 的初学者。我正在制作一种购物清单应用程序。
使用本教程 https://www.youtube.com/watch?v=ZnevdXDH25Q 我正在尝试使用 GetX 进行状态管理。
我有一个名为 'Items' 的 class,它具有一些属性。我创建了一个项目列表,稍后将其显示为卡片。
我无法解决这个问题。
这是我现在正在处理的 class 的代码。
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>'
- 您已将列表分配给 RxList,因此请将其更改为
RxList<Item> items = <Item>[].obs;
或者只是
var items = [].obs;
- 在 loadItems 函数中,您已将 List 分配给 RxList,因此请按如下方式进行更改
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,
),
]);
}
一开始有点迷惑,但你会慢慢明白的
你忘了导入
import 'package:get/get.dart';
所以只需添加这一行 .obs 就可以了
我是 Flutter 的初学者。我正在制作一种购物清单应用程序。 使用本教程 https://www.youtube.com/watch?v=ZnevdXDH25Q 我正在尝试使用 GetX 进行状态管理。
我有一个名为 'Items' 的 class,它具有一些属性。我创建了一个项目列表,稍后将其显示为卡片。
我无法解决这个问题。
这是我现在正在处理的 class 的代码。
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>'
- 您已将列表分配给 RxList,因此请将其更改为
RxList<Item> items = <Item>[].obs;
或者只是
var items = [].obs;
- 在 loadItems 函数中,您已将 List 分配给 RxList,因此请按如下方式进行更改
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,
),
]);
}
一开始有点迷惑,但你会慢慢明白的
你忘了导入
import 'package:get/get.dart';
所以只需添加这一行 .obs 就可以了