在阅读本文之前,请考虑阅读有关 providers 的内容以及 如何读取provider。 在本部分中,我们将详细讨论.family修饰符。
.family 修饰符有一个目的:根据外部参数获取唯一的provider。
比如family的一些常用的使用场景:
将当前 区域 传递给provider,以便让我们可以处理翻译相关的内容。
用法
family的工作方式是向provider添加一个额外的参数。 然后可以在我们的provider中自由地使用这个参数来创建一些状态。
可以同时使用具有不同参数的 family。
比如,我们可以使用titleFamily同时读取法语和英语的翻译:
参数限制
为了让family正常工作,传递给provider的参数必须具有一致的 hashCode 和 ==。
当参数不是常量时最好使用autoDispose:
你可能希望使用family将搜索内容传递给你的provider。 但是这个值经常会改变,并且永远不会被重用。
这可能会导致内存泄漏,因为默认情况下,即使不再使用provider也不会销毁。
下面是使用 Freezed 或 equatable 来传递多个参数的示例: