我正在使用提供程序:^ 3.0.0,其中具有ChangeNotifierProxyProvider参数'builder',其中我在其中提供数据。现在提供程序版本已更改,现在其更新版本为provider:^ 4.0.4,并且它不具有“ builder”功能,而现在具有创建和更新功能。请告诉我,创建和更新背后的逻辑是什么。 我认为周转箱只在第一次运行,而更新在每次第一次运行后都运行? 我对吗!但是我有一个问题,我必须将一些数据传递给参数中的下一个类。 查看我的代码
ChangeNotifierProxyProvider<Auth, Shops>(
create: (ctx)=> Shops('778b2f743f2aebd4d73d2431881a88ba54c53c01', []),
update: (ctx, auth, prevShop)=> Shops(auth.token, prevShop.items),
),
我想将authToken传递给Shop类,在更新时可以从该auth对象获取此数据,但是在创建时我该怎么办? 我想将商店列表作为商店类中的第二个参数传递,这将是从服务器中获取的商店列表,但是在这里,因为我没有引用,所以我必须在create中传递一个空列表。 / p>
这意味着第一次加载页面时,没有商店列表,而当我再次打开同一页面时,商店列表将在屏幕上列出。
请帮助我解决此问题。
答案 0 :(得分:0)
我也遇到了同样的问题。我搜索了文档并找到了解决方案。
您需要在 Shops()类中定义函数 update(),该函数接受您的参数: auth.token 和 prevShop.items ,您需要更新该更新功能中想要的任何内容。
ChangeNotifierProxyProvider<Auth, Shops>(
create: (ctx)=> Shops(),
update: (ctx, auth, prevShop)=> prevShop..update(auth, prevShop.items),
),
我们使用 .. update(auth.token,prevShop.items)返回相同的 Shops()小部件。