これについてはおそらくさまざまな意見があることはわかっていますが、次のようなことをしたいと思います。
late final MyModel myModel;
class MyModel extends Model {
// setState and getState functions
...
}
そして、起動時に、新しいscopedModelを上からグローバル変数に入れたい:
myModel = ScopedModel.of<MyModel>(context, rebuildOnChange: true);
これを行う理由は、すべてのウィジェットでモデルを取得してから、API 呼び出しを行って API の応答をモデルに保存する関数に渡す必要がないためです (簡略化)。
void onButtonPressed({MyModel myModel, DataModel dataModel String email, String password}) {
myModel.loginUser(dataModel, email, password);
...
}
Future loginUser(DataModel dataModel, String email, String password) async {
...
dataModel.setUserData(response);
}
代わりに、次のようにします。
import 'dataModelGlobal.dart' // including the global variable dataModel
Future loginUser(String email, String password) async {
...
dataModel.setUserData(response);
}
これについてどう思いますか。モデルを関数に渡す必要がない他の解決策はありますか?