Восстановить ScopedModel без ScopedModelDescendant - PullRequest
0 голосов
/ 14 марта 2019

В документах ScopedModel есть эти инструкции для извлечения ScopedModel, ранее созданного без ScopedModelDescendant.Я не понимаю, смогу ли я вообще избавиться от ScopedModelDescendant или я должен объявить это где-нибудь, наконец?

Из документов:

Поиск модели #

Существует два способа найти модель, предоставляемую виджетом ScopedModel.

Use the ScopedModelDescendant Widget. It will find the Model and run the builder function whenever the Model notifies the listeners.
Use the ScopedModel.of static method directly. To make this method more readable for frequent access, you can consider adding your own of

метод для ваших собственных классов Model следующим образом:

class CounterModel расширяет Model {// ... /// Wraps [ScopedModel.of] для этого [Model].static CounterModel of (BuildContext context) => ScopedModel.of (context);}

Я бы не использовал ScopedModelDescendant, поэтому я создал экземпляр ScopedModel в корне:

@override
  Widget build(BuildContext context) {
    return ScopedModel<TeamModel>(
            model: TeamModel(widget._team),
            child: Container(
    ...
    ))

И я создал статический метод, как показано в документах:

class TeamModel extends Model {


  static TeamModel of(BuildContext context){
    var of = ScopedModel.of<TeamModel>(context);
    return of;
  }
}

Но я не могу извлечь модель из моего Контейнера, она выдает известное сообщение об ошибке:

22:38:41.603 11 info flutter.tools I/flutter ( 9749): Error: Could not find the correct ScopedModel.
22:38:41.603 12 info flutter.tools I/flutter ( 9749):     
22:38:41.603 13 info flutter.tools I/flutter ( 9749): To fix, please:
22:38:41.603 14 info flutter.tools I/flutter ( 9749):           
22:38:41.604 15 info flutter.tools I/flutter ( 9749):   * Provide types to ScopedModel<MyModel>
22:38:41.604 16 info flutter.tools I/flutter ( 9749):   * Provide types to ScopedModelDescendant<MyModel> 
22:38:41.604 17 info flutter.tools I/flutter ( 9749):   * Provide types to ScopedModel.of<MyModel>() 
22:38:41.604 18 info flutter.tools I/flutter ( 9749):   * Always use package imports. Ex: `import 'package:my_app/my_model.dart';

Из документов мне не ясно, стоит ли мне использовать ScopedModelDescendant илиеще в чем проблема с моим кодом?

...