import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_samples/components/PoetryCard.dart'; import 'package:flutter_samples/logics/services/poetry_detail.dart'; import 'package:flutter_samples/main.dart'; class PoetryDetailPage extends ConsumerStatefulWidget { final int id; const PoetryDetailPage({super.key, required this.id}); @override ConsumerState createState() => _PoetryDetailPageState(); } class _PoetryDetailPageState extends ConsumerState { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { // 重置数据 ref.invalidate(poetryDetailServiceProvider); // 初始化数据 ref.read(poetryDetailServiceProvider.notifier).setUp(widget.id); }); } @override Widget build(BuildContext context) { final state = ref.watch(poetryDetailServiceProvider); final service = ref.read(poetryDetailServiceProvider.notifier); return Scaffold( appBar: AppBar(title: const Text('诗词详情')), body: state.poetry.title.isEmpty ? const Center(child: Text("暂无数据")) : SizedBox( width: double.infinity, child: Column( children: [ Container( padding: const EdgeInsets.symmetric( horizontal: 15, vertical: 15, ), decoration: BoxDecoration(color: $styles.colors.white), child: Poetrycard( poetry: state.poetry, onClick: () { // 点击诗词 service.tapPoetry(); }, ), ), ], ), ), ); } }