小编Sia*_*k S的帖子

Flutter:如果存在则获取提供者,否则返回 null 而不是异常

当我们使用访问 Bloc 对象时,如果当前上下文的祖先小部件BlocProvider.of<OrderBloc>(context)不存在,它将返回异常。OrderBloc返回的异常如下:

No ancestor could be found starting from the context that was passed to BlocProvider.of<OrderBloc>().
Run Code Online (Sandbox Code Playgroud)

但当祖先小部件上不存在时,我希望返回null而不是异常。OrderBloc考虑以下场景:

var orderBloc = BlocProvider.of<OrderBloc>(context);

return Container(child: orderBloc == null
      ? Text('-')
      : BlocBuilder<OrderBloc, OrderState>(
          bloc: orderBloc,
          builder: (context, state) {
            // build something if orderBloc exists.
          },

        ),          
);
Run Code Online (Sandbox Code Playgroud)

flutter bloc flutter-provider flutter-bloc

6
推荐指数
1
解决办法
1433
查看次数

标签 统计

bloc ×1

flutter ×1

flutter-bloc ×1

flutter-provider ×1