如何解决Flutter - GetX:列表文字类型 'List<Item>' 不是预期的类型 'RxList<Item>'
我是 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>'
解决方法
- 您已经为 RxList 分配了一个列表,因此将其更改为
RxList<Item> items = <Item>[].obs;
或者只是
var items = [].obs;
- 在 loadItems 函数中,您已为 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',]);
}
一开始有点混乱,但你会一点一点地得到
,忘记导入
import 'package:get/get.dart';
所以只需添加这一行 .obs 就可以了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。