Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 带有int项的下拉按钮不工作,它不选择新值_Dart_Flutter - Fatal编程技术网

Dart 带有int项的下拉按钮不工作,它不选择新值

Dart 带有int项的下拉按钮不工作,它不选择新值,dart,flutter,Dart,Flutter,我需要创建带有int项的DropdownButton小部件,但它不能按预期工作 代码如下: DropdownButton<int>( hint: Text("Pick"), items: <int>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((int value) { return new DropdownMenuItem<int>( value: _number_tickets_tota

我需要创建带有int项的DropdownButton小部件,但它不能按预期工作

代码如下:

DropdownButton<int>(
    hint: Text("Pick"),
    items: <int>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((int value) {
      return new DropdownMenuItem<int>(
        value: _number_tickets_total,
        child: new Text(_number_tickets_total.toString()),
      );
    }).toList(),
    onChanged: (newVal) {
      setState(() {
        _number_tickets_total = newVal;
      });
    })
下拉按钮(
提示:文本(“拾取”),
项目:[1,2,3,4,5,6,7,8,9,10]。地图((int值){
返回新的DropdownMenuItem(
值:\车票数量\车票总数,
子项:新文本(_number_tickets_total.toString()),
);
}).toList(),
更改后:(newVal){
设置状态(){
_车票数量=总票数=新票数;
});
})

问题是小部件从未获得所选的值。即使我选择了一个值,我也总能看到“提示”文本。

您缺少的是下拉按钮的
value
属性。当该值为空时,它将显示提示,否则为最新选定值

您在下拉项中使用的值与整个列表无关,这就是为什么您应该向它们传递相关信息的原因。我用下面的value属性修改了代码

      DropdownButton<int>(
        hint: Text("Pick"),
        value: _number_tickets_total,
        items: <int>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((int value) {
          return new DropdownMenuItem<int>(
            value: value,
            child: new Text(value.toString()),
          );
        }).toList(),
        onChanged: (newVal) {
          setState(() {
            _number_tickets_total = newVal;
          });
        });
下拉按钮(
提示:文本(“拾取”),
值:\车票数量\车票总数,
项目:[1,2,3,4,5,6,7,8,9,10]。地图((int值){
返回新的DropdownMenuItem(
价值:价值,
子项:新文本(value.toString()),
);
}).toList(),
更改后:(newVal){
设置状态(){
_车票数量=总票数=新票数;
});
});

您缺少的是下拉按钮的
属性。当该值为空时,它将显示提示,否则为最新选定值

您在下拉项中使用的值与整个列表无关,这就是为什么您应该向它们传递相关信息的原因。我用下面的value属性修改了代码

      DropdownButton<int>(
        hint: Text("Pick"),
        value: _number_tickets_total,
        items: <int>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map((int value) {
          return new DropdownMenuItem<int>(
            value: value,
            child: new Text(value.toString()),
          );
        }).toList(),
        onChanged: (newVal) {
          setState(() {
            _number_tickets_total = newVal;
          });
        });
下拉按钮(
提示:文本(“拾取”),
值:\车票数量\车票总数,
项目:[1,2,3,4,5,6,7,8,9,10]。地图((int值){
返回新的DropdownMenuItem(
价值:价值,
子项:新文本(value.toString()),
);
}).toList(),
更改后:(newVal){
设置状态(){
_车票数量=总票数=新票数;
});
});