在阅读本文之前,请考虑阅读有关 providers 的内容以及 如何读取provider。 在本部分中,我们将详细讨论.family修饰符。

.family 修饰符有一个目的:根据外部参数获取唯一的provider。

比如family的一些常用的使用场景:

将当前 区域 传递给provider,以便让我们可以处理翻译相关的内容。

用法​

family的工作方式是向provider添加一个额外的参数。 然后可以在我们的provider中自由地使用这个参数来创建一些状态。

可以同时使用具有不同参数的 family。

比如,我们可以使用titleFamily同时读取法语和英语的翻译:

参数限制​

为了让family正常工作,传递给provider的参数必须具有一致的 hashCode 和 ==。

当参数不是常量时最好使用autoDispose:​

你可能希望使用family将搜索内容传递给你的provider。 但是这个值经常会改变,并且永远不会被重用。

这可能会导致内存泄漏,因为默认情况下,即使不再使用provider也不会销毁。

下面是使用 Freezed 或 equatable 来传递多个参数的示例: