我准备用Flutter和Provider编写我的第一个非凡的应用程序。我已经阅读了Provider如何促进不变的小部件(StatelessWidgets)的内容。我的问题是,在使用提供程序时使用StatefulWidgets是否总是总是的反模式?如果没有,那么什么时候在Provider应用中使用StatefulWidgets更好呢?
答案 0 :(得分:1)
Provider.of<ProviderClass>(context, listen: false);
Provider是Flutter拥有的状态管理机制之一,在后台,Provider跟踪小部件内部所做的更改。 Provider不管是无状态小部件还是有状态小部件都无关紧要,如果有任何更改,它将重新构建小部件。
listen: false
告诉提供者即使数据被修改也不要重建小部件。这意味着只有在父小部件被setState()或ProviderClass
类值修改后,它才能重新构建。
答案 1 :(得分:0)
provider
不在乎是否编写无状态/有状态或其他任何内容(表示吗?)。
在许多情况下,它无需编写StatefulWidget
,但是它并不声称您仅应使用StatelessWidget
。
最后,决定是否需要StatefulWidget
是您的工作。例如,在编写动画时可能需要它。
答案 2 :(得分:0)
在Rémi的答案中添加了此实现的新内容:
在此基于我对React + Redux的经验以及围绕本机Web组件(两者的生命周期相似)以及LitElement的填充对象的经验做出一些假设。到目前为止,这些模式似乎并不相同。除了Redux之外,它过于冗长(而且很糟糕,请原谅)。