小编Die*_*ina的帖子

通过 addPostFrameCallback 访问 Flutter Provider 表示小部件位于小部件树之外,但 Flutter 检查器显示其他情况

我正在 Flutter 中构建我的第一个大型应用程序,也是我需要状态管理的第一个应用程序,所以我转向了 Provider,这是用于状态管理的推荐包。但是,我在 main.dart 文件和树下声明我的提供者时遇到了一些问题,我想进行更改并与其中一个提供者进行交互,但无论我尝试什么解决方案,我都会遇到相同的错误:“已尝试从窗口小部件树外部收听提供者公开的值。”。即使根据颤振检查器,我尝试对提供程序进行更改的小部件位于小部件树内部(“主屏幕”屏幕来自我更新提供程序的位置),我也会收到此错误。 根据 Flutter 检查器的小部件树

下面我也分享我的代码:main.dart:

import 'package:flutter/material.dart';
import 'package:tic_tac_2/screens/welcome_screen.dart';
import 'package:provider/provider.dart';
import 'package:tic_tac_2/models/restaurants_data.dart';
import 'package:tic_tac_2/models/promotions_data.dart';
import 'package:tic_tac_2/models/user.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider<User>(create: (context) => User(),),
        ChangeNotifierProvider<RestaurantsData>(create: (context) => RestaurantsData(),),
        ChangeNotifierProvider<PromotionsData>(create: (context) => PromotionsData(),),
      ],
      child: MaterialApp(
        title: 'Tic Tac',
        theme: ThemeData(
          primarySwatch: Colors.blue,
        ),
        home: WelcomeScreen(),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

欢迎_screen.dart:

import 'package:flutter/material.dart';
import 'package:animated_text_kit/animated_text_kit.dart'; …
Run Code Online (Sandbox Code Playgroud)

provider-model flutter flutter-provider

2
推荐指数
1
解决办法
4786
查看次数

标签 统计

flutter ×1

flutter-provider ×1

provider-model ×1