Flutter 带有颤振贴图的下拉菜单项

Flutter 带有颤振贴图的下拉菜单项,flutter,dart,Flutter,Dart,我想在此地图中填充两个下拉菜单项: var jobs = { "departments": ["dep1", "dep2", "dep3"], "dep1": ["job1", "job2"], "dep2": ["job3", "job4"], "dep3":

我想在此地图中填充两个下拉菜单项:

var jobs = {
  "departments": ["dep1", "dep2", "dep3"],
  "dep1": ["job1", "job2"],
  "dep2": ["job3", "job4"],
  "dep3": ["job5", "job6"]
};
下拉按钮1(部门)

下拉按钮2(作业)

但当我从第二个菜单中选择任何内容并更改第一个菜单的值时,我得到了这个错误:

Assertion failed: file:///home/koha/flutter/packages/flutter/lib/src/material 
/dropdown.dart:1473:15
items == null || items.isEmpty || value == null ||
          items.where((DropdownMenuItem<T> item) {
            return item.value == value;
          }).length == 1
"There should be exactly one item with [DropdownButton]'s value: job1. \nEither zero or 2 or
 more [DropdownMenuItem]s were detected with the same value"
断言失败:file:///home/koha/flutter/packages/flutter/lib/src/material 
/下拉。省道:1473:15
items==null | | items.isEmpty | | value==null||
项目。其中((DropdownMenuItem项目){
返回项。值==值;
}).length==1
“应该只有一个项目具有[DropdownButton]的值:job1。\n既不是零,也不是2,或者
检测到更多具有相同值的[DropdownMenuItem]

您正在更改第二个下拉列表中的项目,但变量“chosenJob”具有旧项目列表中的值。更改'chosenDep'变量时,请清除'chosenJob'内容。

您正在更改第二个下拉列表中的项目,但变量'chosenJob'具有旧项目列表中的值。更改'chosenDep'变量时,请清除'chosenJob'内容。

如果更改第一个变量,则必须将第二个变量更改为默认值

比如说

DropdownButton(
 hint: Text(hint1),
 value: chosenDep,
 items: jobs['departments']
        .map((e) => DropdownMenuItem(child: Text(e), value: e,))
        .toList(),
onChanged: (value){
  setState({
     isDepChosen= true;
     chosenDep = value;
     chosenJob = jobs[chosenDep].first;
  });
)

如果更改第一个,则必须将第二个更改为默认值

比如说

DropdownButton(
 hint: Text(hint1),
 value: chosenDep,
 items: jobs['departments']
        .map((e) => DropdownMenuItem(child: Text(e), value: e,))
        .toList(),
onChanged: (value){
  setState({
     isDepChosen= true;
     chosenDep = value;
     chosenJob = jobs[chosenDep].first;
  });
)
DropdownButton(
 hint: Text(hint1),
 value: chosenDep,
 items: jobs['departments']
        .map((e) => DropdownMenuItem(child: Text(e), value: e,))
        .toList(),
onChanged: (value){
  setState({
     isDepChosen= true;
     chosenDep = value;
     chosenJob = jobs[chosenDep].first;
  });
)