Search code examples
flutterstate-managementflutter-getx

how to update selected radio button in flutter using getx statemanagment


I am using Flutter with GetX plugin and I have two radio buttons inside statelessWidget but the radio button doesn't changed to selected when user click on it my question is how I can update screen to show selected radio the groupValue attribute changed using GetX pluing. here is my code

Radio(
  value: reportController.period[0],
  groupValue: reportController.selectedPeriod,
  onChanged: (val) {
                     reportController.selectedPeriod = val;
                              
                    },
     )

and this is my controller

import 'package:get/get.dart';

import 'package:ycom/models/report.dart';

class ReportController extends GetxController {
  var report = Report().obs;
  List<String> period = ["evening", "morning"];

  void set selectedPeriod(String selectedPeriod) {
    report.update((report) {
      report.selectedPeriod = selectedPeriod;
    });
  }

  String get selectedPeriod => report.value.selectedPeriod;
}

Solution

  • I solved it by wrapping Radio widget inside Obx() function as following

    Obx(() => Radio(
                     value: reportController.period[0],
                     groupValue: reportController.selectedPeriod,
                     onChanged: (val) {
                                       reportController.selectedPeriod = val;
    
    
                                    },
                   ))