dart 如何将复选框连接到if命令

im9ewurl  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(86)
class checkbox extends StatefulWidget{
  @override
  State<checkbox> createState() => _checkboxState();
}

class _checkboxState extends State<checkbox> {
  bool? isChecked = false;
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Checkbox(value:isChecked ,activeColor: Colors.red,shape: CircleBorder(), onChanged: (newbool) {
      setState(() {
        isChecked = newbool;
      });
    });
  }
}

字符串
这是我的复选框代码。

class thridcontrol extends GetxController {
  var isChecked = {}.obs;
  var spice = [];
  void editproduct(checkbox()) {
    if (!check.containskey(isChecked)) {
      spice.add("spicy");
  }
  get check => isChecked;
}


当我尝试这段代码时,它只是感觉不到if命令,就好像它不存在一样。我已经尝试了很多方法,但似乎都不起作用。
我基本上希望它,以便如果复选框被选中的项目被添加到香料列表“辣”,但我的代码是不工作的。当我试图在终端中打印它时,列表只是空的。

vawmfj5a

vawmfj5a1#

你可以试试这个代码:
thridcontrol.dart

class thridcontrol extends GetxController {
  var isChecked = false.obs;
  var spice = [];

  void editproduct() {
    if (isChecked.value) {
      spice.add("spicy");

      debugPrint("-----------$spice");
    }
  }
}

字符串
checkboxDemo.dart

class CheckboxDemo extends StatefulWidget {
  const CheckboxDemo({super.key});

  @override
  State<CheckboxDemo> createState() => _CheckboxDemoState();
}

class _CheckboxDemoState extends State<CheckboxDemo> {
  bool? isChecked = false;

  final thridcontrol controller = Get.put(thridcontrol());

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          // title: Text(widget.title),
          ),
      body: Center(
        child: Obx(() => Checkbox(
              value: controller.isChecked.value,
              activeColor: Colors.red,
              shape: CircleBorder(),
              onChanged: (newValue) {
                controller.isChecked.value = newValue!;
                controller
                    .editproduct(); // Call the method to update the 'spice' list
              },
            )),
      ),
    );
  }
}

相关问题