我正在 Flutter 中构建我的第一个大型应用程序,也是我需要状态管理的第一个应用程序,所以我转向了 Provider,这是用于状态管理的推荐包。但是,我在 main.dart 文件和树下声明我的提供者时遇到了一些问题,我想进行更改并与其中一个提供者进行交互,但无论我尝试什么解决方案,我都会遇到相同的错误:“已尝试从窗口小部件树外部收听提供者公开的值。”。即使根据颤振检查器,我尝试对提供程序进行更改的小部件位于小部件树内部(“主屏幕”屏幕来自我更新提供程序的位置),我也会收到此错误。
下面我也分享我的代码: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) 自 2020 年 4 月 2 日起,由于 COVID-19 大流行,Apple 将执行 iOS13 和 Swift 4.x 的新指南的截止日期从2020 年4 月 30日延长至6 月 30 日。这已在其开发者网站上宣布。
Apple 正在弃用 Swift 3.x,用 Swift 3.x 编写的代码库必须更新到(至少)Swift 4.x。从 2020 年 4 月开始,无法从 Swift 3.x 项目部署到 AppStore。
有关解释,请参阅编辑 #1和编辑 #2。
根据Apple的此更新:
从 2020 年 4 月开始,所有新应用和应用更新都需要使用 iOS 13 SDK 构建,并支持 iPhone XS Max 或更高版本的全屏设计。
我已经从 7 月开始在这里检查了matt的答案,但几乎没有需要详细说明的缺失点。
我尝试使用我在该网站的线程上找到的代码,但发生的只是我的应用程序加载白屏。有没有更好的方法在颤动中强制纵向视图?设置起来似乎很简单。
void main() async {
///
/// Force the layout to Portrait mode
///
await SystemChrome.setPreferredOrientations(
[DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
runApp(new MaterialApp(
debugShowCheckedModeBanner: false,
home: LoginScreen(),
));
}
Run Code Online (Sandbox Code Playgroud)