将提供者作为参数传递给小部件是最佳做法吗?

Is it a best practise to pass provider as an argument to widgets?

将提供程序作为参数传递给小部件是最佳做法吗?

我知道我们可以直接从小部件中访问提供程序。 但是看到一些代码片段将 provider 作为参数传递给子小部件。 它优化了代码吗?或任何可能的泄漏?

最好从需要它的小部件中访问提供程序,因为提供程序使用 BuildContext(如 Provider.of( context)) 根据小部件在小部件树中的位置获取所请求提供的服务的实例,因为它遍历上面的层次结构以找到它。您可以为了方便而这样做,但是小部件应该足够封装和足够解耦,以免依赖更高的小部件来获取提供给它们的数据,从而使它们 self-sufficient 并且独立。我的两分钱。