有没有办法让 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

试用