解决了渲染TCP推送数据,在切换功能后不稳定问题,保证了APP端的稳定性。
This commit is contained in:
@@ -15,7 +15,8 @@ import '../../../../core/di/injection.dart';
|
||||
import '../../../../core/network/net_message_dispatcher.dart';
|
||||
import '../../../../core/network/protocol_decoder.dart';
|
||||
import '../../../devices/presentation/bloc/devices_cubit.dart';
|
||||
import '../../../devices/presentation/bloc/device_status_cubit.dart';
|
||||
import '../../../devices/presentation/bloc/device_status_bloc.dart';
|
||||
import '../../../devices/presentation/bloc/device_status_event.dart';
|
||||
import '../../../devices/presentation/bloc/device_status_state.dart';
|
||||
|
||||
// 配置:数据超时时间(5秒)
|
||||
@@ -64,8 +65,9 @@ class _RunningStatusPageState extends State<RunningStatusPage> with WidgetsBindi
|
||||
// 🔥 注册静态实例
|
||||
_instance = this;
|
||||
debugPrint('🚀 [RunningStatusPage] initState 被调用');
|
||||
// 🔥 简化:直接重置状态,不需要重新初始化监听器
|
||||
context.read<DeviceStatusCubit>().reset();
|
||||
// 🔥 使用 DeviceStatusBloc
|
||||
// context.read<DeviceStatusBloc>().add(DeviceStatusReset());
|
||||
|
||||
// 🔥 关键:立即启动超时计时器,如果5秒内没收到数据就显示"暂无数据"
|
||||
_startDataTimeoutTimer();
|
||||
|
||||
@@ -841,7 +843,7 @@ class _RunningStatusPageState extends State<RunningStatusPage> with WidgetsBindi
|
||||
body: CustomScrollView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
slivers: [
|
||||
BlocBuilder<DeviceStatusCubit, DeviceStatusState>(
|
||||
BlocBuilder<DeviceStatusBloc, DeviceStatusState>(
|
||||
builder: (context, state) {
|
||||
// 新增:超时状态下显示--
|
||||
String qual = _isDataTimeout ? '--' : '--';
|
||||
@@ -949,7 +951,7 @@ class _RunningStatusPageState extends State<RunningStatusPage> with WidgetsBindi
|
||||
),
|
||||
|
||||
SliverToBoxAdapter(
|
||||
child: BlocBuilder<DeviceStatusCubit, DeviceStatusState>(
|
||||
child: BlocBuilder<DeviceStatusBloc, DeviceStatusState>(
|
||||
builder: (context, state) {
|
||||
debugPrint('🎨 [UI-Build] BlocBuilder 重建!当前状态类型:${state.runtimeType}');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user