请解释语法 - 使用继承小部件的颤振块提供程序

Posted

技术标签:

【中文标题】请解释语法 - 使用继承小部件的颤振块提供程序【英文标题】:Please Explain syntax - flutter bloc provider using inherited widget 【发布时间】:2020-07-21 18:07:35 【问题描述】:

我不明白构造函数部分和静态函数部分。 极好的? 依赖InheritedWidgetOfExactType?

import 'comments_bloc.dart';
export 'comments_bloc.dart';

class CommentsProvider extends InheritedWidget 
  final CommentsBloc commentsBloc;
  CommentsProvider(Key key, Widget child)
      : commentsBloc = CommentsBloc(), // what this line is doing.
        super(key: key, child: child);

  bool updateShouldNotify(_) => true;

//below code?
  static CommentsBloc of(BuildContext context) 
    return context
        .dependOnInheritedWidgetOfExactType<CommentsProvider>()
        .commentsBloc;
  

【问题讨论】:

【参考方案1】:

第 1 步:dependOnInheritedWidgetOfExactType 方法使后代小部件能够访问包含在其 BuildContext 中的最近的祖先 InheritedWidget 实例,在您的代码中为 CommentsProvider

第 2 步:.commentsBloc 表示访问此 CommentsProvider 的属性,在您的代码中为 final CommentsBloc commentsBloc;

【讨论】:

以上是关于请解释语法 - 使用继承小部件的颤振块提供程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用提供程序包收听更改并在颤振中重建小部件?

InheritedWidget 混淆

请帮助我无法构建相同的这个小部件,我无法使用颤振代码在列表视图中构建容器

颤振小部件的最佳定义?

颤振小部件测试 - 如何执行“返回上一个屏幕”的测试

无法使用颤振 Bloc 模式更新小部件外部的 UI