import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:shared/utils/log_utils.dart'; import 'package:widgets/ext/ex_widget.dart'; import 'package:widgets/load_state_layout.dart'; import 'package:widgets/widget_export.dart'; import '../detail/feedback_detail_page.dart'; import '../item_feedback.dart'; import 'feedback_progress_view_model.dart'; @RoutePage() class FeedbackProgressScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final viewModel = ref.read(feedbackProgressViewModelProvider.notifier); final state = ref.watch(feedbackProgressViewModelProvider); useEffect(() { // 组件挂载时执行 - 执行接口请求 Future.microtask(() => viewModel.fetchList()); return () { // 组件卸载时执行 Log.d("FeedbackProgressScreen 组件卸载时执行"); }; }, []); return Container( width: double.infinity, height: double.infinity, child: EasyRefresh( controller: viewModel.refreshController, onRefresh: viewModel.onRefresh, onLoad: viewModel.loadMore, child: LoadStateLayout( state: state.loadingState, errorMessage: state.errorMessage, errorRetry: () { viewModel.retryRequest(); }, successSliverWidget: [ SliverList( delegate: SliverChildBuilderDelegate( (context, index) { return FeedbackItem(index: index, item: state.datas[index]).onTap((){ FeedbackDetailPage.startInstance(context: context); }); }, childCount: state.datas.length, )) ], ), ).marginOnly(top: 5, bottom: 5), ); } }