在 Riverpod文档中它说:
这
context.read(myProvider)
就是解决方案。使用它,我们可以将之前的代码重构为:
@override Widget build(BuildContext context) { return RaisedButton( onPressed: () => context.read(counterProvider).state++, child: Text('increment'), ); }
通过这样做,单击我们的按钮仍然会增加计数器。但是我们不再听提供者,这避免了不必要的重建。
但随后它说:
警告
避免在Widget
context.read
的方法内部调用。build
如果要优化重建,请提取在 Provider 中侦听的值。
这让我有点困惑。首先,文档给出了context.read
在方法内部使用的示例,build
然后给出了避免它的警告。为什么?