import 'package:flutter/material.dart';
import 'package:flutter_code/page/book/bookEntity.dart';
import 'package:get/get.dart';
class MyBook extends StatelessWidget {
const MyBook({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.red, //导航背景颜色
title: Text("我的Get"),
),
body: myHome(),
);
}
}
class myHome extends StatefulWidget {
const myHome({super.key});
@override
State<myHome> createState() => _myHomeState();
}
class _myHomeState extends State<myHome> {
BookEntity bookEntity = Get.find<BookEntity>(); //实例化控制器
@override
void initState() {
// TODO: implement initState
super.initState();
ever(bookEntity.BookId, (value) {
print('监听bookId1 $value');
});
// 监听bookId的变化
bookEntity.BookId.listen((value) {
print('监听bookId2 $value');
});
everAll([bookEntity.BookId, bookEntity.LetterId], (value) {
//BookId与LetterId任意一个发生变化时监听
print('BookId与LetterId任意一个发生变化时监听 $value');
});
bookEntity.addListener(() {
//对象中任意一个发生变化就会被监听
print('监听全部_________________________');
});
// count值改变时调用,只执行一次
once(
bookEntity.BookId, //监听值
(callback) => print(
"once---------${bookEntity.BookId},${bookEntity.LetterId},-----------"));
// 值在1秒中不断改变,当值已经超过1秒后,不再改变,才调用,主要是防DDos
debounce(
bookEntity.BookId, //监听值
(callback) => print(
"debounce-----${bookEntity.BookId},${bookEntity.LetterId},-----监听count1的值,停止输入1秒后--执行------"));
// // 忽略3秒内的所有变动,有输入值时,3秒内会执行一次,如一直在输入,连续输入9秒,会每隔3秒执行一次
// 用于微信对方正在输入中
interval(
bookEntity.BookId, //监听count1的值
(callback) => print(
"interval-----${bookEntity.BookId},${bookEntity.LetterId},-----监听count1的值----忽略3秒内的所有变动------"));
}
@override
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Obx(() => Text("bookid: ${bookEntity.BookId}")),
ElevatedButton(
onPressed: () {
bookEntity.setBookId(bookEntity.BookId + 1);
},
child: const Text("bookid 加1")),
Obx(() => Text("LetterId: ${bookEntity.LetterId}")),
ElevatedButton(
onPressed: () {
bookEntity.setLetterId(bookEntity.LetterId + 1);
},
child: const Text("LetterId 加1")),
],
),
);
}
}