簡體   English   中英

type '(BuildContext, Widget) => ChangeNotifierProvider<>' 不是類型轉換中類型 '(BuildContext, Widget?) => Widget' 的子類型

[英]type '(BuildContext, Widget) => ChangeNotifierProvider<>' is not a subtype of type '(BuildContext, Widget?) => Widget' in type cast

type '(BuildContext, Widget) => ChangeNotifierProvider' 不是類型轉換中類型 '(BuildContext, Widget?) => Widget' 的子類型

嗨,我在將舊項目轉換為 Flutter 2.5 時遇到了上述錯誤,誰能幫我弄清楚?

abstract class Role {
  Widget homeBuilder(BuildContext context);
   Map<String, WidgetBuilder>? routes;

  /// The navigatorBuilder allows you to insert widgets between MaterialApp and its Navigator.
  /// This is useful for providing the logged in Talent or Recruiter
   TransitionBuilder? navigatorBuilder;
}




@override
  TransitionBuilder navigatorBuilder =
      (BuildContext context, Widget navigator) {
    String token = Provider.of<AuthBloc>(context).token;
    MyNotifications.setUpFirebaseMessaging(context);
    return ChangeNotifierProvider<Talent>(
      create: (ctx) =>
      (Provider.of<AuthBloc>(context).role as TalentRole).talent
        ..setAuthToken(token),
      child: navigator,
    );
  };

過渡生成器:

typedef TransitionBuilder = Widget Function(BuildContext context, Widget? child);

期待一個上下文和一個孩子。 孩子是Widget?類型Widget? ,注意問號。 這表明小部件可以為空。

如果你定義了一個 TransitionBuilder 你也需要展示它,所以你需要改變

@override
  TransitionBuilder navigatorBuilder =
      (BuildContext context, Widget navigator) {

@override
  TransitionBuilder navigatorBuilder =
      (BuildContext context, Widget? navigator) { //add the question mark

有關空安全的更多信息: https : //dart.dev/null-safety/understanding-null-safety

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM