如何在Flutter中更新dropdownMenuItem?

时间:2019-11-08 08:51:44

标签: flutter dart

我有2个下拉菜单。从第一个下拉菜单中选择项目时。我需要在第二个下拉菜单中添加项目,但这会导致错误。

我检查了第二个下拉菜单中的项目已经为空。当第一个下拉菜单更改为第二个下拉菜单时,该菜单项不是空的,但不起作用并给出错误提示。

有什么主意吗?

第一个下拉代码:

Widget getPolWidget() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        Icon(
          Icons.touch_app,
          size: 25.0,
          color: Colors.black,
        ),
        SizedBox(width: 50.0),
        DropdownButton(
          items: this.polList
              .map((value) => DropdownMenuItem(
                    child: Text(
                      value.code,
                      style: TextStyle(color: Colors.black),
                    ),
                    value: value.id,
                  ))
              .toList(),
          onChanged: (selectedType) {

          getPod(selectedType);

            setState(() {
              selectedPodId = selectedType;
            });
          },
          value: selectedPodId,
          isExpanded: false,
          hint: Text(
            'Choose Type',
            style: TextStyle(color: Colors.black),
          ),
        )
      ],
    );
  }



Widget getPodWidget() {
    return Row(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        Icon(
          Icons.touch_app,
          size: 25.0,
          color: Colors.black,
        ),
        SizedBox(width: 50.0),
        DropdownButton(
          items: this.podList
              .map((value) => DropdownMenuItem(                
                    child: Text(
                      value.code,
                      style: TextStyle(color: Colors.black),
                    ),
                    value: value.id,
                  ))
              .toList(),
          onChanged: (selectedType) {
            setState(() {
              selectedPodId = selectedType;
              print(selectedPodId);
            });
          },
          value: selectedPodId,
          isExpanded: false,
          hint: Text(
            'Choose Type',
            style: TextStyle(color: Colors.black),
          ),
        )
      ],
    );
  }

错误消息:'package:flutter / src / material / dropdown.dart':失败的断言:620行pos 15:'item == null || items.isEmpty ||值== null || items.where(((DropdownMenuItem item)=> item.value == value).length == 1':不正确。

1 个答案:

答案 0 :(得分:0)

你好,你必须声明一个变量并传递到DropdownButton的value参数中,在onchanged方法中,必须更新该变量

String a = "fdhsa";
value:a,
onchanged:(h){setState(){a=h;}},

请确保您的value参数与下拉列表中继承的列表中的参数相同