FRA*_*NAD 6 dart flutter riverpod flutter-riverpod
StateNotifierPovider我一直在试图找出观察对象与观察它所暴露的通知程序之间的区别。正如我们在文档中看到的,当状态更改时,观察通知程序对象不会触发对象的构建方法。经过实验,看起来观察提供者对象就像会暴露通知程序中的状态一样ref.read(provider.notifier).state。我无法真正理解直接监视提供程序与监视提供程序之间的区别provider.notifier以及为什么它在监视通知程序并更改其状态时不触发构建方法。
Rém*_*let 15
的文档.notifier希望
\n\n\n获取与此提供程序关联的 StateNotifier,\n而不侦听状态更改。
\n这通常用于调用 StateNotifier 上的方法。例如\n:
\nRun Code Online (Sandbox Code Playgroud)\nButton(\n onTap: () => ref.read(stateNotifierProvider.notifer).increment(),\n)\n如果 StateNotifier\instance 发生更改,此可监听对象将通知其通知程序。如果刷新提供程序或其依赖项之一\n发生更改,则可能会发生这种情况。
\n
所以ref.watch(provider)监听状态变化。
并且ref.watch(provider.notifier)只获取通知者但不监听状态变化。相反,它会侦听何时StateNotifier重新创建实例 \xe2\x80\x93 例如ref.refresh(provider),如果您这样做了,这将重新创建StateNotifier
| 归档时间: |
|
| 查看次数: |
3458 次 |
| 最近记录: |