小编Rau*_*abe的帖子

我应该在何时何地将值存储在 BLoC 本身或其状态中

语境

我来自 Redux,正在学习全局状态管理的 BLoC 模式。我在定义应该将值作为属性存储在 BLoC 类中的位置以及何时应该将值存储在 States 中时遇到困难。

使用案例

我有一个主页,在其中显示一些广告,具体取决于其类别(category不应为空)。我实现了一个这样的 AdsBloc:

class AdsBloc extends Bloc<AdsEvent, AdsState> {
  final AdsRepository repository;
  AdsBloc({@required this.repository})
      : super(AdsInitial(category: Category.DOGS));

  @override
  Stream<AdsState> mapEventToState(
    AdsEvent event,
  ) async* {
    // my code
  }
}
Run Code Online (Sandbox Code Playgroud)

这些是我的 AdsState:

abstract class AdsState {
  final Category category;
  AdsState({this.category});
}

class AdsInitial extends AdsState {
  AdsInitial({category}) : super(category: category);
}

class AdsSuccess extends AdsState {
  final PaginatedAds paginatedAds;
  AdsSuccess({this.paginatedAds, category}) : super(category: category);
}

class AdsFailure extends AdsState …
Run Code Online (Sandbox Code Playgroud)

architecture state-management dart flutter bloc

7
推荐指数
1
解决办法
2353
查看次数

ElevatedButton、TextButton 和 OutlinedButton 渐变

在使用默认的 ButtonThemeData 轻松制作渐变按钮之前……但现在我无法弄清楚如何使用新的 MaterialButtons 正确制作自定义渐变按钮。

我正在尝试制作一个三个自定义渐变按钮,它必须使用 AppTheme 中定义的 ButtonStyle(splashColor、elevation...)。

升高按钮

GradientElevatedButton 使用带有渐变背景的 ElevatedButtonThemeData

文本按钮

GradientTextButton 使用带有渐变文本的 TextButtonThemeData

轮廓按钮

GradientOutlinedButton 使用带有渐变边框和渐变文本的 OutlinedButtonThemeData

已经试过了

我曾尝试用 ShaderMask 包装 ElevatedButton,但它涵盖了墨迹动画,因此无法实现我的目标。

flutter flutter-layout

5
推荐指数
1
解决办法
859
查看次数

有状态小部件在 Redux/Flutter 应用程序中有意义吗?

我正在研究 Redux 与 Flutter 的结合,我有一个问题,如果你遵循 redux 架构,那么在 Flutter 中制作有状态的 widget 是否有意义?我可能认为对于动画和小部件来说,最好制作一个有状态的部件,而不是为真正的 appState 创建一个新属性,但我不太确定......我需要有人来澄清这个虚拟问题。

state redux flutter

3
推荐指数
1
解决办法
704
查看次数