【发布时间】:2021-06-22 01:19:58
【问题描述】:
我有一个 BlocBuilder,它允许我构建元素列表。 BlocBuilder 的所考虑的 Bloc 在其状态中具有要显示的元素的 List<T>。
现在我想使用相同的 BlocBuilder 但使用不同的 Bloc 为其提供不同的数据源(另一个 Bloc 也将在其状态下保存 List<T>)。这个新的小部件将以与另一个小部件完全相同的方式显示信息,唯一改变的是内容,即数据。
问题是我不想仅仅因为 Bloc 不同就复制/粘贴整个 BlocBuilder。我唯一需要改变的是,它必须是BlocBuilder<BlocB, BlocBState>,而不是BlocBuilder<BlocA, BlocAState>,为此,我认为复制/粘贴整个文件是不值得的。
我想知道是否可以仅使用三元运算符来更改 Bloc 的类型。类似的东西
bool isTypeA;
BlocBuilder<isTypeA ? BlocA, BlocAState : BlocB, BlocBState>
如果我在 BlocBuilder 之前检查,我将不得不复制/粘贴我试图避免的整个内容。
bool isTypeA;
isTypeA ? return BlocBuilder< BlocA, BlocAState>(...) : return BlocBuilder< BlocB, BlocBState>(...)
【问题讨论】:
标签: flutter dart conditional-operator bloc