一屏两肘

Two flutter cubits on one screen

我有一个屏幕(无状态小部件),其中有两个按钮,一个用于检查 Firebase 帐户是否已验证,第二个用于重新发送验证电子邮件。这两个过程显然是分开的,我需要把它们分开两肘。

所以,我的问题是我该怎么做?

我想我可以用 MultiBlocProvider 做到这一点,但我不确定在这种情况下如何从这两个腕尺获取状态?是否针对此类场景定义了最佳实践?

首先,运行一个MultiBlocProvider到屏幕上,然后有两个并行的BlocBuilder是没有问题的,例如每个按钮一个或嵌套两个 BlocBuilder(这实际上是 .watch() 如果它在另一个 BlocBuilder 中的样子)。

但我也有一个自以为是的答案。正如您所说,这两个按钮将 运行 两个独立的进程,但我不会将它们分成两个肘,因为它们与同一功能紧密相关,并且该功能的状态基本相同。我认为一个干净的解决方案将是一个带有单独方法的肘,一个带有 resendEmail() 方法和 checkVerification() 方法的 HandleFirebaseVerificationCubit。因为我猜你想根据常见状态(例如 NotVerified/Verified)等隐藏或禁用按钮

我会将其与您有后端处理的表单进行比较,例如一些由按下按钮触发的验证和另一个按钮获取一些数据以协助填充文本字段(例如一些地址)你可能有一个肘来填充整个表单。