我正在观看 The Boring Flutter Development Show,在其中一集中他们展示了 Bloc 的实现。
现在有这块代码,我认为最好用 Switch 语句替换,以防将来出现更多情况:
_storiesTypeController.stream.listen((storiesType) {
if (storiesType == StoriesType.newStories) {
_getArticlesAndUpdate(_newIds);
} else {
_getArticlesAndUpdate(_topIds);
}
});
Run Code Online (Sandbox Code Playgroud)
...所以我试图实现它,但它给了我一些错误说
switch 表达式的类型 'Type' 不能分配给 case 表达式的类型 'Stories Type'。
所以我想出了这个解决方法:
final storyType = StoriesType.newStories;
_storiesTypeController.stream.listen((storyType) {
switch (storyType) {
case StoriesType.newStories: {
_getArticlesAndUpdate(_newIds);
}
break;
case StoriesType.topStories: {
_getArticlesAndUpdate(_topIds);
}
break;
default: {
print('default');
}
}
});
Run Code Online (Sandbox Code Playgroud)
...一切正常,但我想知道是否有另一种方法可以切换 Enum 以及为什么当我在这一行中使用它时,它说未使用局部变量 storyType 的值:
_storiesTypeController.stream.listen((storyType)
Run Code Online (Sandbox Code Playgroud)
然后我切换过来?
我在 FutureBuilder 启动两次时遇到问题。首先它正确获取数据,返回我的 StartScreen,然后几秒钟后,StartScreen 重建,我注意到 FutureBuilder 再次触发。
这是我的代码,它非常简单,所以我想知道可能是什么问题?!?
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
FirebaseUser user;
@override
void initState() {
// TODO: implement initState
super.initState();
getNewestlocation();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'APP',
theme: buildTheme(),
home: FutureBuilder<FirebaseUser>(
future: Provider.of<AuthService>(context).getUser(),
builder: (context, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.error != null) {
print('error');
return Text(snapshot.error.toString());
}
user …Run Code Online (Sandbox Code Playgroud) 这是生产中的应用程序。我改变了一些逻辑试图获得 dateTime 我已经将它本地化到另一个国家,然后突然有一些关于 dart html 的错误,但我不记得到底是什么,所以我尝试重建项目,结果是抱怨使用新的构建系统,到目前为止我尝试过:
没有一篇论文完成了这项工作。
当更改为旧版时,有 13 个错误,其中一个抱怨未找到 dart:html,所以我将它添加到依赖项和开发开发依赖项中,但仍然没有。我还评论了 intl 包,因为在发生这种情况时我正在使用它,并且包得到了却什么也没有。
任何想法如何处理这个?
这是完整的控制台 Xcode 输出:
> 2020-03-16 17:55:17.549 xcodebuild[56626:765857] DTDeviceKit: deviceType from 3ad4f96e876e8222a72563420303530067367818 was NULL
> ** BUILD FAILED **
>
>
> Xcode's output: ?
**Skipped Warnings about deprecated methods, because of char limits and previously builds despite the warnings.**
>
> Compiler message:
> ../../Developer/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.16.0/lib/src/http_request_data_reader.dart:11:8:
> Error: Not found: 'dart:html'
> import 'dart:html';
> ^
> ../../Developer/flutter/.pub-cache/hosted/pub.dartlang.org/http-0.12.0+4/lib/src/browser_client.dart:6:8: …Run Code Online (Sandbox Code Playgroud) 我有这个问题,找不到更多相关信息。整个消息说:
xcodebuild[41239:2858194] 警告:“Firebase.xcconfig”的文件引用是多个组(“支持文件”和“支持文件”)的成员;这表明一个畸形的项目。只会保留其中一个组中的成员资格(但目标中的成员资格不受影响)。如果您想在多个组中引用同一个文件,请添加另一个对同一路径的引用。
到目前为止,我尝试过:
没有改变。问题仍然存在。
我的 Podfile 是:
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
use_modular_headers!
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}
def parse_KV_file(file, separator='=')
file_abs_path = File.expand_path(file)
if !File.exists? file_abs_path
return [];
end
pods_ary = []
skip_line_start_symbols = ["#", …Run Code Online (Sandbox Code Playgroud) 我使用 ImagePicker 拍照,并像 File 一样保存。我想要的是在将其上传到 FirebaseStorage 之前将其转换为 png。问题是,当我尝试使用此函数转换它时:
File('test.png').writeAsBytesSync(encodePng(image));
它给了我错误,因为照片是像文件而不是图像一样保存的。我在谷歌上搜索了某种类型的插件或函数来将其从文件转换为图像,但没有找到具体的信息。有人可以帮我解决这个问题吗?
编辑:为了确保我解释清楚:我有像文件一样存储的照片“photo 1.jpeg”,因为这就是 ImagePicker 的作用。然后我想将此文件转换为图像,然后将其转换为 .png
我有viewController1,viewController2哪个是modaly呈现,我想在解雇第二个时使用完成处理程序,但我无法获得实现.我以为我必须编写一个函数并将其放在那里:
viewController.dismissViewControllerAnimated(true, completion: funcToCall())
Run Code Online (Sandbox Code Playgroud)
但后来我收到这个错误:
无法将类型'()'的值转换为预期的参数类型'(() - > Void)?'
任何人都可以解释我,我怎样才能正确执行完成处理程序?
我有一个isolate,它进行了一些繁重的计算,然后在接收结果列表时运行一个for循环,将它们添加到可观察列表中,其中包含items var items = [].obs;
\n问题是我试图从启动控制器观察项目列表,一旦列表 != [] 我将导航到另一个屏幕,所以在 onInit() 中我有以下代码:
\nclass SplashController extends GetxController {\n @override\n void onInit() {\n final ItemsController _itemsController = Get.put(ItemsController());\n\n // TODO: implement onInit\n super.onInit();\n ever(_itemsController.items, (newItems) {\n print('new items here $newItems');\n });\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n尽管 itemsController.items 已填充(在 for 循环之后,我打印了 itemsController.items 并且它不是空的),但添加项目时,飞溅控制器上的工作程序不会触发。
\n我在这里做错了什么?这是使用 Getx 观察小部件外部变量的正确方法吗?\n有人可以帮我解决这个问题吗?
\n编辑:在项目控制器中 I\xe2\x80\x99m 以这种方式添加项目
\nadd(item) => items.add(item)\nRun Code Online (Sandbox Code Playgroud)\n 我有这个用Swift编写的函数来获取排行榜,然后将其显示给用户:
@IBAction func onShowLeaderboardTapped(_ sender: Any) {
let leaderboardDB = FIRDatabase.database().reference().child("scores").queryOrderedByValue().queryLimited(toLast: 5)
leaderboardDB.observeSingleEvent(of: .value, with: { (snapshot) in
print("leaderboard snapshot:" ,snapshot)
}, withCancel: nil)
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我获取它时,它会给我以下列表:
Ben = 9;
Gabriela = 12;
Ivailo = 7;
Petar = 10;
Vania = 10;
Run Code Online (Sandbox Code Playgroud)
它向我展示了前五个玩家,但随后按字母顺序列出了它们.由于这不是一个大问题,我想知道是否有办法按价值排序.
这些是规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"scores": {
".indexOn": ".value"
}
}
}
Run Code Online (Sandbox Code Playgroud)
数据库的组织如下:
matchrooms:
users:
scores:
> Ben: 9
> Dimitar: 7
> Gabriela: 12
> Ishest: 6
> Ivailo: 7 …Run Code Online (Sandbox Code Playgroud) 我使用以下代码旋转360º一个UIButton:
self.btn.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat(M_PI)) / 180.0)
self.btn.transform = CGAffineTransform(rotationAngle: (0.0 * CGFloat(M_PI)) / 180.0)
Run Code Online (Sandbox Code Playgroud)
问题是它从左向右旋转,我想反转方向.我尝试过使用-M_PI或-180等组合,但没有成功.我究竟做错了什么?
我手动删除了 Firebase 用户,然后从设备(物理 iPhone)中删除了该应用程序,然后当我安装它时,它通过身份验证检查打印已删除的用户电子邮件和所有内容。这是我用来检查用户是否存在的方法
home: FutureBuilder<FirebaseUser>(future: Provider.of<AuthService>(context).getUser(),
builder: (context, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.error != null) {
print('error');
return Text(snapshot.error.toString());
}
user = snapshot.data;
print(user.email);
return snapshot.hasData ? HomeScreen(user, pos) : LoginScreen();
} else {
return LoadingCircle();
}
},
)
Run Code Online (Sandbox Code Playgroud)
这怎么可能?谁能解释一下,当我从 Firebase 上的 Auth Users 中删除该用户时,为什么该用户仍然存在?
这个问题被编辑了 3 次,现在包括 VPS 和 Centos 标签,因为我认为我的 VPS 配置文件有问题。
好的,首先,我已经浏览了这里提出的所有问题,但我遇到的问题没有答案。
问题是,当我尝试复制/粘贴和更新或创建 WP 帖子时,我收到以下警告:“您无权访问此服务器上的 /wp-admin/post.php。”
最奇怪的是,当我复制/粘贴时,只有在有一些特殊格式(如斜体或任何符号)时才会崩溃,但不是每个都像 ()。因此,如果我粘贴文本,它通常会崩溃,但并非总是如此。
现在,让事情变得更奇怪,我有一篇文章做得很好,我的意思是它过去在博客上看起来很好。然后我尝试创建一个联系页面,我已经发布了它,但它没有显示在博客上。有一条消息说在链接上什么也没找到。然后我开始四处点击,我注意到我做得对的帖子也消失了。我的意思是它仍然存在,但是当您单击“阅读更多”时,它什么也没找到。
我关闭了我正在使用的所有插件(实际上只有十四种颜色)并更改了主题,但根本没有结果。
知道为什么会这样吗?我将它托管在虚拟服务器上,并且在同一个 Ip 上运行了 2 个站点,但我不认为,这可能是问题所在。以前我在玩 SSL,我认为这可能是问题所在,但后来我删除了域并从头开始创建了任何内容,但问题仍然存在。
钯。当我尝试从键盘发布原始输入的文本时,我没有问题,但是当我粘贴它时,它通常会使帖子崩溃。
编辑:我的 .htaccess 文件在这里:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Run Code Online (Sandbox Code Playgroud)
编辑 2:看来我也不能发布链接。当我尝试发布链接时,我遇到了同样的错误。
编辑 3:我试图找到 php 日志文件,但似乎什么都没有。所以我的想法是:如果错误与 wp 尝试写入日志但无法获得许可有关怎么办?我在配置中启用了 php 日志,所以应该至少有一个,但我找不到任何日志。有谁可以告诉我,我必须在哪里寻找日志。现在我正在查看 /var/log 但没有 php 日志文件。