有没有办法让 Riverpod 的 StreamProvider 仅在初始调用时进入加载状态?
Is there a way to make Riverpod's StreamProvider go into loading state only on the initial call?
这是我一直想知道的事情。当使用 {StreamProvider's name}.when
方法时,每当流发生变化时,它会阻碍用户体验显示加载图标。
我已经可以通过使用 StreamBuilder
并使用 StreamProvider
的 .stream
属性 作为流来使其工作。这样,它只在没有数据时显示加载图标,如果新数据到达旧数据之上,它会显示旧数据,直到新数据“加载”为止。
但我发现这是一种解决方法,我想知道是否有更简洁的方法。
所以您需要做的是在有人收听时为您的流添加一个值,为此您需要订阅 onListen
,这是一个 VoidCallback
所以是的,您当然可以做到这一点。
版本 2.0.0 更新了 AsyncValue 的处理方式,使您要求的成为新的默认行为。
您现在可以使用版本 flutter_riverpod: ^2.0.0-dev.0
试用
这是我一直想知道的事情。当使用 {StreamProvider's name}.when
方法时,每当流发生变化时,它会阻碍用户体验显示加载图标。
我已经可以通过使用 StreamBuilder
并使用 StreamProvider
的 .stream
属性 作为流来使其工作。这样,它只在没有数据时显示加载图标,如果新数据到达旧数据之上,它会显示旧数据,直到新数据“加载”为止。
但我发现这是一种解决方法,我想知道是否有更简洁的方法。
所以您需要做的是在有人收听时为您的流添加一个值,为此您需要订阅 onListen
,这是一个 VoidCallback
所以是的,您当然可以做到这一点。
版本 2.0.0 更新了 AsyncValue 的处理方式,使您要求的成为新的默认行为。
您现在可以使用版本 flutter_riverpod: ^2.0.0-dev.0