繁体   English   中英

Flutter 使用 Provider 时出现“EditableText 上方不存在覆盖小部件”错误

[英]Flutter 'No Overlay widget exists above EditableText' error when using Provider

嘿,我有一个MultiProvider设置,现在在点击TextField时会抛出这个错误,而在我实现 multi-provider 之前它没有:

No Overlay widget exists above EditableText

错误文本没有给出任何有用的指示代码中导致问题的原因,这里是代码:

import 'package:***_mobile/Providers/user_auth_provider.dart';
import 'package:***_mobile/screens/browsing_page.dart';
import 'package:***_mobile/screens/film_details_page.dart';
import 'package:***_mobile/screens/login_screen.dart';
import 'package:***_mobile/screens/venue_details_page.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

void main() {
  runApp(***());
}

class *** extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider(
      create: (_) => UserRepository.instance(),
      child: Consumer(
        builder: (context, UserRepository user, _) {
          return MaterialApp(
            title: 'Flutter Demo',
            routes: {
              '/browsing': (ctx) => BrowsingPage(),
              '/venueDetails': (ctx) => VenueDetailPage(),
              '/filmDetails': (ctx) => FilmDetailPage(),
              '/login': (ctx) => LoginPage()
            },
            theme: ThemeData(
              primarySwatch: Colors.blue,
              visualDensity: VisualDensity.adaptivePlatformDensity,
            ),
            builder: (ctx, _) {
              switch (user.status) {
                case Status.Uninitialized:
                  return LoginPage();
                case Status.Unauthenticated:
                  return LoginPage();
                case Status.Authenticating:
                  return LoginPage();
                case Status.Authenticated:
                  return BrowsingPage();
                default:
                  return LoginPage();
              }
            },
          );
        },
      ),
    );
  }
}

原谅我的语言,我希望你能理解,我写的是什么。 您需要包装从导航器中的构建器返回的每个小部件

Navigator(
      
        onGenerateRoute: (_) => MaterialPageRoute(
          builder: (ctx) => Scaffold(
            body: Stack(
              children: [
                Positioned.fill(
                    child: buildBody(
                        context.watch<AuthScopeViewModel>().screenType))
              ],
            ),
          ),
        ),
      );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM