在内容底板的信息这个标签里面可以显示内容相关的文件信息,我们先去创建一个小部件,新建一个文件放在 lib/post/bottom_sheet/components 里面,名字是 post_bottom_sheet_file_metadata.dart 。在文件的顶部导入 provider 这个包。
然后在文件里定义一个带状态的小部件,名字是 PostBottomSheetFileMetadata ,小部件里添加一个属性,类型是 Post 名字是 post,一个构造方法,PostBottomSheetFileMetadata,给它一个参数,this.post。
打开 post_show_file_metadata,复制一下这个 initState 方法。 回到 PostBottomSheetFileMetadata ,粘贴到这个小部件的状态类里面。选择导入需要的这个 FileShowStore。
在上面声明一个属性,用 late 标记一下,类型是 FileShowStore,名字是 fileShowStore。
在这个 initState 方法里做的事情就是检查是否有需要的可用的文件信息数据缓存,没找到的话就会请求服务端获取到需要的文件信息数据。
在这个 build 方法里,让它 return 一个 Observer,设置一下它的 builder ,在这个构建器里面先让它 return 一个 SingleChildScrollView,它的 child 可以是一个 Column 小部件,在它的 children 里面,暂时用一个 Text 小部件,文字是 PostBottomSheetFileMetadata 。
post_bottom_sheet
打开 post_bottom_sheet ,修改一下 TabBarView 的 children ,把第一个小部件换成刚才创建的 PostBottomSheetFileMetadata,提供一个 widget.post 。
观察
现在打开内容底板,在信息这个标签下面显示的就是 PostBottomSheetFileMetadata 。