3

在函数中使用 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 的函数,那么将模型作为参数传递似乎是更好的方法。

我应该使用哪一个?

4

0 回答 0