dev.to | 📄 原文链接 | 2026-09-05 收录

驯服 Flutter 无限滚动(二):用 CubitSignalMixin 把 ScrollController 变成响应式状态机

来源:dev.to — 2026-09-04

📋 概述

系列第 2 篇针对 pub.dev 上几十个第三方分页包(infinite_scroll_pagination、lazy_load_scrollview 等)收的「架构税」给出替代:把 Flutter 标准 ScrollController 本身变成响应式状态容器。Dart 的单继承墙挡住了 `class X extends ScrollController, BlocSignal`,但通过可组合的 CubitSignalMixin / BlocSignalMixin 可以绕过。作者给出两种模式:A 用一个只发「是否接近底部」布尔信号的 PagingScrollController 保持领域层 100% 纯 Dart;B 让 controller 同时是 ScrollController、Cubit 与 Bloc,做到 100% StatelessWidget 的 UI。

🔑 核心要点

💡 金句

无限滚动不必是充满竞态 bug、竞争控制器与专有包装器的成人礼。
← 返回 dev.to 首页