颤振:下拉按钮不会更新以显示所选选项

时间:2020-06-15 19:35:30

标签: flutter dart setstate dropdownbutton

我正在尝试使用下拉按钮让用户从选项列表中进行选择,但是在做出选择之后,下拉按钮仍然显示提示。我认为有关setState的内容并未更新下拉按钮。

              value: skillChoice,
              items: listDrop,
              hint: Text("Choose Skill"),
              onChanged: (value) {

                setState(() {
                  skillChoice = value;
                });
              },
            ),

以下是在代码前面声明的变量:

      List<DropdownMenuItem<int>> listDrop = [];
      int skillChoice = null;

有人可以让我知道为什么它没有更新吗?

2 个答案:

答案 0 :(得分:0)

我认为将skillChoice设置为null首先会禁用下拉菜单。

答案 1 :(得分:0)

如果显示了如何实现DropDownButton的完整代码段,那会更好。但是这是我实现我的方法:

 // This is the initial value that will be selected on the DropDownMenu by default

    String choice = '1';


    // This is the List of String (or whatever data type you want) that will make up the 
    Drop Down Menu Item options. NOTE: That the String value of 'choice' ('1') is also present in the List of choices ('1')

    List<String> choices = [
    '1',
    '2',
    '3',
    '4',
    '5',
    ];

    DropdownButton<String>(
                value: choice,
                icon: Icon(Icons.add),
                onChanged: (String newValue) {
                  setState(() => choices = newValue);
                },
                items: choices.map<DropdownMenuItem<String>>((String value) {
                  return DropdownMenuItem<String>(
                    value: value,
                    child: Text(
                          value,
                        )
                  );
                }).toList(),
              ),

现在应该可以正常工作。