在函数中使用 ScopedModel 的推荐方法是什么?我应该将模型作为参数传递,还是应该在使用模型的任何地方始终使用 ScopedModelDescendant?
使用 ScopedModelDescendant:
class Foo extends StatelessWidget {
Widget _buildItemThatNeedsModel() {
return ScopedModelDescendant<MyModel>(builder: (BuildContext context, Widget child, model) {
return Text(model.someDataFromModel);
},);
}
@override
Widget build(BuildContext context) {
return _buildItemThatNeedsModel();
}
}
传递模型作为参数:
class Foo extends StatelessWidget {
Widget _buildItemThatNeedsModel(MyModel model) {
return Text(model.someDataFromModel);
}
@override
Widget build(BuildContext context) {
return ScopedModelDescendant<MyModel>(builder: (BuildContext context, Widget child, model) {
_buildItemThatNeedsModel(model);
},);
}
}
在我看来,他们俩都完成了工作。如果我有多个使用 ScopedModel 的函数,那么将模型作为参数传递似乎是更好的方法。
我应该使用哪一个?