我一直在按照教程在我們的 Flutter Web 應用程式中實作狀態管理。這是教程:https ://medium.flutterdevs.com/firebase-authentication-using-provider-in-flutter-522841a2ee4d
現在我正在為我的小部件創建“baseView”模型并且有點迷失,因為我是新來的。
class BaseView<T extends BaseModel> extends StatefulWidget {
final Widget Function(BuildContext context, T model, Widget child) builder;
const BaseView({
@required this.builder,
});
@override
_BaseViewState<T> createState() => _BaseViewState<T>();
}
class _BaseViewState<T extends BaseModel> extends State<BaseView<T>> {
T model = locator<T>();
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<T>.value(
//builder: (context) => model,
child: Consumer<T>(builder: widget.builder),
//notifier: model,
value: model,
);
}
}
首先,我收到“@required this.builder”部分的錯誤訊息:
引數 'builder' 的值不能為 'null',因為它的型別,但隱含的默認值是 'null'。
對于“Consumer<T>(builder: widget.builder)”部分,我收到此錯誤:
引數型別“Widget Function(BuildContext, T, Widget)”不能分配給引數型別“Widget Function(BuildContext, T, Widget?)”。
鏈接到專案的 Github repo,在教程中介紹:https ://github.com/flutter-devs/flutter_auth_provider
uj5u.com熱心網友回復:
Widget Function(BuildContext, T, Widget)不能接受簽名null所需的小部件值。Widget Function(BuildContext, T, Widget?)
而已。說得通?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/410670.html
標籤:
上一篇:FlutterlistenererrorTheargumentTypecan'tbeassignedtotheparametertype
下一篇:如何在字串中使用文本欄位小部件?
