我知道颤振中的状态管理存在某些问题,但它们似乎都不能解决我的用例。
最近我正在构建一个基于电子商务的应用程序,并遇到了这种对状态管理的真正需求。我有2页,
用户可以将产品添加到购物车,然后导航到购物车。在购物车页面中,他们还可以增加或减少商品的数量。
正如您所看到的,最初黄色商品被添加到购物车中,数量为 3,但在购物车页面中,用户按下 (-) 按钮,将数量减少到 1。现在,如果用户按下后退按钮,则状态为黄色产品在产品页面上仍为 3。与粉色产品类似的情况。
因此,我尝试使用正常的 setState 和一些全局数据结构来解决这个问题来跟踪数量。但随着我的应用程序变得越来越大,跨页面维护状态真的很困难。我读过不同的状态管理解决方案,例如 redux、BloC 模式、Provider,...但我不清楚如何在我的用例中使用它们。有没有有经验的人帮我把石头敲碎,帮我消化一下?
任何有关如何解决此问题的示例代码和解释将不胜感激!
希望我的问题是清楚的!
state-management flutter flutter-provider flutter-bloc flutter-state
这是Java的源代码ArrayList(使用java 1.8)
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
Run Code Online (Sandbox Code Playgroud)
public boolean addAll(Collection<? extends E> c) {
Object[] a = c.toArray();
int numNew = a.length;
ensureCapacityInternal(size + numNew); // Increments modCount
System.arraycopy(a, 0, elementData, size, numNew);
size += numNew;
return numNew != 0;
}
Run Code Online (Sandbox Code Playgroud)
我不是很清楚为什么我们只能使用Eforadd()而我们可以使用<? extends E>foraddAll()