flutter - 使用 onPress 检索数据

标签 flutter dart

我收到一条错误消息 item当我尝试使用 Text 小部件呈现它时未定义。

按下按钮时,如何检索值并将其放入小部件中?

class AddCashForm extends StatefulWidget {
  @override
  _AddCashFormState createState() => _AddCashFormState();
}

class _AddCashFormState extends State<AddCashForm> {
  DateTime selectedDate = DateTime.now();
  List<String> chipList = [
    "one",
    "two",
    "three",
    "four",
  ];

  void dispose() {
    oneController.dispose();
    twoController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Row(
            children: <Widget>[
              ChoiceChipWidget(chipList, (item) {
                print('Item selected: $item');
                return (item);
              }),
            ],
          ),
          RaisedButton(
            child: Text("Submit"),
            onPressed: () {

            },
          ),
         // Text(item), data should appear here
        ],
      ),
    );
  }
}

最佳答案

如果您希望项目自动更新,而不单击提交,请使用以下命令:

class _AddCashFormState extends State<AddCashForm> {
  final selectedDate = DateTime.now();
  final chipList = <String>[
    'one',
    'two',
    'three',
    'four',
  ];

  String item;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Row(
            children: chipList
                .map<Widget>((s) => ChoiceChip(
                      label: Text(s),
                      selected: s == item,
                      onSelected: (bool selected) {
                        setState(() {
                          item = selected ? s : null;
                        });
                      },
                    ))
                .toList(),
          ),
          Text(item ?? ''),
        ],
      ),
    );
  }
}

关于flutter - 使用 onPress 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384925/

相关文章:

flutter - 如何在 CustomPaint 中去除多余的形状?

flutter - Flutter中如何去除TextFormField中的错误信息

listview - 在构建期间调用 setState() 或 markNeedsBuild

operator-overloading - Dart ,重载 [] 运算符?

android - 如何将 flutter 项目迁移到 androidx

flutter - 使用 Obx,出现此错误 : [Get] the improper use of a GetX has been detected

dart - 抛出异常 : FormatException: Invalid radix-10 number

firebase - Flutter/Dart QuerySnapshot isEqualTo 或运算符?

dart - 带有自定义声音的 Firebase 推送通知 (Flutter)

dart - 如何更改或替换 Flutter 中的 ImageCache?