使用 Riverpod 来实现 Flutter 状态,哪个更好:ConsumerWidget 还是仅在需要时使用 Consumer?
我对 Riverpod 相当陌生,但似乎使用 ConsumerWidget 作为屏幕主体是一种不好的做法,因为屏幕会在不需要时重建。
例如:
- 主小部件(屏幕本身)是
- 层次结构中某处的 ConsumerWidget 我有一个可单击按钮的列表,我正在观察 ChangeNotifierProvider 来更新选定的索引(一次只能单击一个按钮) 。
似乎每当我单击一个按钮来更新索引(并更改按钮的颜色)时,都会调用主小部件的 Build 方法以及列表中的项目。
但是,当在 ListView 的 itemBuilder 方法中仅使用 Consumer 小部件时,单击一个按钮不再触发主小部件的 build 方法。
那么,在需要的地方使用消费者小部件是否被认为是一种好的做法?
I'm fairly new to Riverpod but it seems that using a ConsumerWidget as the body of a screen is a bad practice because the screen is rebuilt when not needed.
For example:
- the main widget (the screen itself) is a ConsumerWidget
- somewhere in the hierarchy I have a list of clickable buttons, for which I'm watching a ChangeNotifierProvider to update a selected index (only one button can be clicked at a time).
It seems that whenever I click one button to update the index (and change the color of the button), the main widget's Build method is called, along with the items in my list.
However, when using just a Consumer widget inside the itemBuilder method of my ListView, clicking one button no longer triggers the build method of the main widget.
So, is it considered a good practice to just use Consumer widgets where needed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论