2

我使用了一个为我stateful class返回DropdownButton小部件的变量,我需要访问其中的一个变量,该变量不是最终的,并且可以通过它的object. 这是我的代码:

    class ListItemHelper extends StatefulWidget {
  String name = '';

  @override
  _ListItemHelperState createState() => _ListItemHelperState();
}

class _ListItemHelperState extends State<ListItemHelper> {
  List<ListItem> _nloc = <ListItem>[
    const ListItem(1, 'Kabul'),
    const ListItem(2, 'Mazar')
  ];
  ListItem _nlocSelectedItem;

  ListItem get listI => _nlocSelectedItem;

  @override
  Widget build(BuildContext context) {
    return DropdownButton<ListItem>(
      value: _nlocSelectedItem,
      onChanged: (ListItem newValue) {
        setState(() {
          _nlocSelectedItem = newValue;
          widget.name = newValue.name;
          print(
              'this is the menu idxx: ${newValue.id} and the title is ${newValue.name}');
        });
      },
      items: _nloc.map((ListItem listItem) {
        return new DropdownMenuItem<ListItem>(
          value: listItem,
          child: new Text(
            listItem.name,
            style: new TextStyle(color: Colors.black),
          ),
        );
      }).toList(),
    );
  }
}

class ListItem {
  const ListItem(this.id, this.name);

  final String name;
  final int id;
}

为了清楚起见,我需要通过类的对象访问变量名。

4

0 回答 0