在 Flutter 文档中,Provider.of 段落的解释

Posted

技术标签:

【中文标题】在 Flutter 文档中,Provider.of 段落的解释【英文标题】:In Flutter Documentation, Explanation of Provider.of paragraph 【发布时间】:2020-07-27 14:09:09 【问题描述】:

This Given Link Describes Provider.of

在文本中,它使用了一个基本购物应用程序的示例,其中包含可以通过点击添加的项目。这里 Provider.of 用于删除购物车的所有内容。它提到“我们可以为此使用 Consumer,但这会很浪费。我们会要求框架重建一个不需要重建的小部件。”

Provider.of<CartModel>(context, listen: false).removeAll();

在这里我们可以清楚地看到购物车的内容发生了变化,因此需要重新构建......那么为什么它使用 PRvider.of 并提到它不需要重新构建。

【问题讨论】:

你的问题是什么? 考虑一个页面,您没有显示与购物车相关的任何内容,但您放置了一个按钮来清除购物车。如果您正在使用 Consumer 并更改数据,则将调用 build 方法,但您没有使用该页面中的任何内容。所以在这种情况下,你可以使用 provider.of 而不是 consumer。 【参考方案1】:

这段代码的用例非常清楚。

Provider.of<CartModel>(context, listen: false).removeAll();

在您不需要更改 UI 时使用它。

【讨论】:

以上是关于在 Flutter 文档中,Provider.of 段落的解释的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Provider:为啥在调用 Provider.of<Widget>(context) 时会出现此错误,如 tihis:

如何对访问 Provider.of(context) 的小部件进行 Flutter 测试

Flutter之跨组件状态共享Provider剖析

Flutter之跨组件状态共享Provider剖析

如何在 Flutter 中正确重用 Provider

Flutter - Provider - 如何根据 Provider 的值更改 UI?