Flutter中的ScopedModel

时间:2018-11-01 15:41:56

标签: dart flutter

我正在尝试在我的项目中创建作用域模型,但是出了点问题..

模型类:

 class CartonModel extends Model{
  bool playerState = false;
  bool get getPlayerState => playerState ;
  void stateOff(){
  playerState = false ;
  notifyListeners();
  }
  void stateOn(){
    playerState = true ;
     notifyListeners();
  }
}

使用范围模型包装的材料应用程序:

ScopedModel<CartonModel>(
  model: new CartonModel(),
  child: new MaterialApp( // some code )

我在图标按钮上使用ScopedModelDescendant:

ScopedModelDescendant<CartonModel>(
      builder: (context, child, CartonModel model) =>
          new IconButton(
            icon: new Image.asset(imageUrl),
            iconSize: dimenRatio * 0.25,
            onPressed: () {
              Future<void> bottomSheetAwaitClose =
                  showModalBottomSheet<void>(
                context: context,
                builder: (BuildContext context) {
                  return MusicR();
                },
              );

              bottomSheetAwaitClose.then((void value) {
                model.stateOff();
              });
            },
          ),
    ),

我已经导入了所有必需的程序包并向ScopedModel <>和ScopedModelDescendant <>提供了类型,但是仍然出现此运行时错误: 找不到正确的ScopedModel。

此代码有什么问题吗?请帮助

1 个答案:

答案 0 :(得分:1)

如果在main.dart中声明了CartonModel类,请将其移至其他文件。

并确保您以'package:<projectname>/cartonmodel.dart'

的形式声明导入。