【问题标题】:flutter BlocProvider Navigation颤振 BlocProvider 导航
【发布时间】:2021-11-24 17:11:00
【问题描述】:

假设我们使用以下代码导航到“PageA”:

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) {
      return BlocProvider(
        create: (context) => BlocA(),
        child: PageA(),
      );
    },
  ),
);

当“PageA”导航到“PageB”时。如何访问“BLocA”? 我尝试使用以下代码从“PageA”导航到“PageB”,但它崩溃了。

Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) {
      return BlocProvider(
        create: (context) => contxt.read<BlocA>(),
        child: PageB(),
      );
    },
  ),
);

【问题讨论】:

    标签: flutter navigation bloc


    【解决方案1】:

    为了将已经创建的块传递到后续屏幕,您可以使用BlocProvider.value 更改后您的代码将如下所示:

    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) {
          return BlocProvider.value(
            value: BlocProvider.of<BlocA>(context),
            child: PageB(),
          );
        },
      ),
    );
    

    PageB 现在应该可以检索 blocA。

    【讨论】:

    • BlocProvider 没有“值”命名属性
    • 对不起,我的错,我已经更正了代码。
    猜你喜欢
    • 2020-07-14
    • 2020-08-25
    • 2021-08-06
    • 2019-06-04
    • 2020-10-10
    • 2019-07-01
    • 1970-01-01
    • 2019-12-16
    • 2020-08-22
    相关资源
    最近更新 更多