在Flutter的build方法内部调用Provider中的方法,可以通过使用Consumer或Selector来实现。
Consumer<DataModel>(
builder: (context, data, child) {
// 在这里调用Provider中的方法
data.someMethod();
return SomeWidget();
},
)
Selector<DataModel, int>(
selector: (context, data) => data.someProperty,
builder: (context, someProperty, child) {
// 在这里调用Provider中的方法
Provider.of<DataModel>(context, listen: false).someMethod();
return SomeWidget();
},
)
需要注意的是,为了避免不必要的UI刷新,最好将Provider中方法的调用放在合适的条件下,比如在特定的状态改变时才调用方法。
领取专属 10元无门槛券
手把手带您无忧上云