Estou utilizando o MobX no Flutter.
Ao clicar no FloatingActionButton é gerado uma ListView que contem CheckboxListTile.
Contudo os checkboxes não estão alterando seus status.
Eu até abri uma pergunta no https://stackoverflow.com/questions/66310628/checkbox-are-not-changing-their-status-with-mobx pois não sei mais o que fazer...
Se alguem puder me ajudar, ficaria muito grato.
home_controller.dart
`import 'package:flutter/material.dart';
import 'package:mobx/mobx.dart';
import 'package:flutter_modular/flutter_modular.dart';
part 'home_controller.g.dart';
@Injectable()
class HomeController = _HomeControllerBase with _$HomeController;
abstract class _HomeControllerBase with Store {
@observable
Map<String, bool> mapValues = {};
@observable
ListView listViewCheckbox;
@action
void listViewChekbox(value) {
for (var i in value) {
mapValues[i] = true;
}
listViewCheckbox = ListView(
scrollDirection: Axis.vertical,
shrinkWrap: true,
children: mapValues.keys.map((String key) {
return CheckboxListTile(
title: Text(key),
value: mapValues[key],
onChanged: (bool value) {
mapValues[key] = value;
},
);
}).toList()
);
}
}`
home_page.dart
`import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'home_controller.dart';
class HomePage extends StatefulWidget {
final String title;
const HomePage({Key key, this.title = "Home"}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends ModularState<HomePage, HomeController> {
HomeController controller = HomeController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Observer(builder: (_) {
return controller.listViewCheckbox == null ? Container() : controller.listViewCheckbox;
}),
floatingActionButton: FloatingActionButton(
onPressed: () {
List listValues = ['foo', 'bar'];
controller.listViewChekbox(listValues);
},
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
}
}`