Flutter 如何将 Getx & Obx 应用于 ToggleButtons Widget

Flutter How to apply Getx & Obx to ToggleButtons Widget

我需要将 ToggleButtons 小部件与 getx 一起使用。

但我找不到任何关于 ToggleButtons 和 getx 的参考资料。

我尽力了,但我只收到如下所述的错误消息。

我的问题是 如何将 ToggleButtons 小部件与 Getx 一起使用?

谢谢。

HomePage

    import 'package:mofu_flutter/src/controller/shelf_life_controller.dart';    
    class HomePage extends StatelessWidget {
          final shelfLifeController = Get.put(ShelfLifeController(), permanent: false);
@override
  Widget build(BuildContext context) {
    return Container(
        child: SafeArea(
            bottom: false,
            child: Scaffold(
        .....
        body:SingleChildScrollView(
        .....
            child: Container(
        .....
            child: Column(
        .....
         Container(
        .....
         Column(
        .....
        .....
        Obx(()=>ToggleButtons(
        ....
         onPressed: (int index) {
                                        shelfLifeController.changeTabIndex(index);
                                      } isSelected: shelfLifeController.isSelected)

Controller

进口'package:get/get.dart';

class ShelfLifeController extends GetxController {

  RxList<bool> isSelected = [false, true, false].obs;
  void changeTabIndex(int index) {
  RxInt tabIndex = 0.obs;
    tabIndex.value = index;
          for(int buttonIndex = 0; buttonIndex < isSelected.length; buttonIndex++){
            if(buttonIndex == index){
              isSelected[buttonIndex] = true;
            } else {
              isSelected[buttonIndex] = false;
            }
          }
  }

  @override
  void onInit() {
    super.onInit();
  }

  @override
  void dispose() {
    super.dispose();
  }
}

Error Message

Error Screen

我没有在控制器的末尾添加 update(),而且 shelfLifeController.isSelected 已更改为 shelfLifeController.isSelected.toList()。之后,一切正常。 :)