使用作为提供者参数传递给类的变量的选项填充下拉按钮

问题描述 投票:0回答:1

我有一个名为 Category 的类,每个 Category 都有一个 Subcategory 对象列表。类别和子类别类都有标题字段。

所以...

  • 类别1
    • 子类别1
    • 子类别2
  • 类别2
    • 子类别3
  • 类别3
  • 类别4
    • 子类别4
    • 子类别5
    • 子类别6

我有一个类别对象的列表视图,单击一个导航到表单屏幕,用户在其中输入一些数据并保存一个 SavedItem 对象。他们需要完成的一个字段是从下拉按钮中选择子类别。如果他们点击类别 4,则选项为子类别 4、子类别 5 和子类别 6。

我通过

List<Subcategory> subCategories = providedCategory.subcategories.toList();

获得类别对象作为提供者参数和子类别

我如何从那里转到工作下拉列表?我是 Flutter 的新手,所以这让我头疼……下面抛出了一个我搜索过的错误,它说下拉选项不是唯一的,但对象子类别列表的内容每个都是唯一的。

There should be exactly one item with [DropdownButton]'s value: . 
Either zero or 2 or more [DropdownMenuItem]s were detected with the same value
'package:flutter/src/material/dropdown.dart':
DropdownButton(
  value: selectval,
  onChanged: (value) {
    setState(() {
      selectval = value.toString();
    });
  },
  items: subCategories.map((item) {
    return DropdownMenuItem(
      value: item, child: Text(item.title));
  }).toList(),
),
flutter
1个回答
0
投票

如果你喜欢在下拉菜单上使用字符串数据类型,它将是

String? selectval;

DropdownButton<String?>(
  value: selectval,
  onChanged: (value) {
    setState(() {
      selectval = value;
    });
  },
  items: subCategories.map((item) {
    return DropdownMenuItem<String?>(
      value: item.title, child: Text(item.title));
  }).toList(),
),

或者您喜欢的物品,不要在物品盒上使用

.toString()

© www.soinside.com 2019 - 2024. All rights reserved.