正如 Riverpod 文档中所述,Riverpod 提供程序可以监视其他提供程序来创建“处理管道”。
我有这样的事情:
final prov = Provider<String>((ref){
final w1 = ref.watch(prov1);
final w2 = ref.watch(prov2);
final w3 = ref.watch(prov3);
final w4 = ref.watch(prov4);
final complex = expensiveFunction(w1,w2,w3,w4);
return complex;
});
Run Code Online (Sandbox Code Playgroud)
prov1可以prov4通过 UI 的各个部分单独修改,但某些 UI 操作会导致其中部分或全部快速连续更改。
我怎样才能消除呼叫expensiveFunction()直到w1..w4在 2 秒内都没有改变?
我正在努力弄清楚如何在以下场景中使用 Riverpod。
我有一个 ListView,其中子视图是内部带有按钮的容器。
当按下按钮时,我想更改该容器的颜色。我希望使用 Riverpod 提供程序将该颜色存储在一个状态中。
列表之外还有另一个按钮。当按下它时,它应该改变所有容器的颜色。
感觉就像我需要为每个容器一个 Change/StateNotifierProvider 。我为此使用家庭吗?我如何将特定的状态片段与其关联的容器绑定?
红色按钮如何访问所有状态以更改所有状态的颜色?
作为奖励,我还希望当绿色按钮之一更改其容器的颜色时通知红色按钮
非常感谢
我的网络应用程序有一个仅在配置文件和发布版本中出现的问题(小部件未正确渲染,仅产生灰色)。我想添加一些 print() 语句来帮助找出问题所在,但 print() 不会在配置文件/发布版本中将任何内容记录到 VSCode 调试输出窗口。
有什么想法如何解决这个问题吗?
我还可以使用哪些其他技术来诊断仅发布问题?
谢谢