меня никто матерится не будет? Ибо реализация с глобал ключами какая то неудобная
/*
class Dot extends StatefulWidget {
Dot({Key? key, required this.selected}) : super(key: key);
bool selected;
late _DotState _state;
//пробрасываем метод
setValue(bool value) => _state.setValue(value);
@override
State<Dot> createState() {
//иллегал мув со стейтом
_state = _DotState();
return _state;
}
}
class _DotState extends State<Dot> {
setValue(bool value) {
//setState тригерит перерисовку компонента
setState(() {
widget.selected = value;
});
}
@override
Widget build(BuildContext context) {
//отрисовка
}
}*/
Есть и редакс, это уже очень знакомая вещь. Хотя и довести разработку до комфорта реакта только редаксом не получится, хуки бы и как-то объеденить statefull виджеты и их стейты в один класс. Но я что-то размечтался
Редакс — наиболее неудобный способ из всех возможных. Смотри, как можно легко и просто на GetX сделать. Делаешь контроллер class DotController extends GetxController в нем держишь свой selected final RxBool selected = false.obs; Создаешь контроллер Get.put(DotController()); На одном экране лезешь в контроллер, меняешь значение Get.find<DotController>().selected.toggle(); На другом ловишь изменения: Widget build(BuildContext context) { return Obx(() => Checkbox(selected: dotController.selected.value); ); }
Обсуждают сегодня