在我的 M1 Mac pro 上安装最新版本的 Docker Desktop 后,尽管安装了所有正确的文件,但我似乎无法运行 docker compose。
我尝试在终端中运行docker-compose并docker compose收到以下消息:docker: 'compose' is not a docker command.
运行后docker --version,我目前处于Docker version 20.10.21, build baeda1f
Compose 已正确添加到我的 PATH 变量中/usr/local/bin/,其中包含以下文件:
com.docker.cli docker-credential-desktop fuzzy_match kubectl.docker
docker docker-credential-ecr-login httpclient vpnkit
docker-compose docker-credential-osxkeychain hub-tool xcodeproj
docker-compose-v1 docker-index kubectl
Run Code Online (Sandbox Code Playgroud)
当我运行时which docker-compose,它返回/usr/local/bin/docker-compose,所以看起来一切都配置正确。
此外,跑步docker-compose-v1似乎确实因某些奇怪的原因而起作用。
有任何想法吗?
编辑:似乎在安装最新版本的 Docker(Docker Desktop 4.14.1 (91661)、Docker 版本 20.10.21、build baeda1f)后已修复此问题。
我正在尝试访问一些在整个应用程序中更改和访问的用户设置。为此,我使用 Hive 从框中检索用户设置。我想通过将检索到的对象转换为UserSettings将Hive.box('settings').get(userID)被输入到StreamProvider.
我将如何变成Hive.box('settings').get(userID)一个流?
编辑:这是迄今为止我的代码实现:
本地数据库.dart
static Stream<UserSettings> get userSettings {
return Hive.box('settings').watch(key: userID)?.map((boxEvent) {
return boxEvent.value; // ========> value is always null from boxEvent
});
}
static void saveUserSettings(UserSettings userPref) {
Hive.box('settings').put(userID, userPref);
}
Run Code Online (Sandbox Code Playgroud)
主程序.dart
class Launch extends StatefulWidget {
@override
_LaunchState createState() => _LaunchState();
}
class _LaunchState extends State<Launch> {
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<User>.value(value: AuthService.user),
StreamProvider<UserSettings>.value(value: LocalDatabase.userSettings),
],
child: MaterialApp(
title: 'MyApp',
home: AuthWrapper(), …Run Code Online (Sandbox Code Playgroud) 我有一个类,我试图将其与 Freezed、Json Serialized 和 Hive 一起使用。运行dart run build_runner build并生成必要的类后,我的编译器给出以下错误:
: Error: Can't use '_$FooBarFromJson' because it is declared more than once.
和
: Error: '_$FooBarFromJson' is already declared in this scope.
part 'foobar.freezed.dart';
part 'foobar.g.dart';
@freezed
@JsonSerializable(explicitToJson: true)
@HiveType(typeId: 0)
class FooBar extends HiveObject with _$FooBar {
factory FooBar({
@HiveField(0) required int baz
}) = _FooBar;
factory FooBar.fromJson(Map<String, dynamic> json) =>
_$FooBarFromJson(json);
}
}
Run Code Online (Sandbox Code Playgroud)
查看生成的类后,我的foobar.g.dart文件包含以下方法:
FooBar _$FooBarFromJson(Map<String, dynamic> json) => FooBar(
baz: json['baz'] as int,
); …Run Code Online (Sandbox Code Playgroud) 我在 VS Code 上运行 Flutter,并且经常在 Lib 目录中进行更改,在其中重命名文件或更改它们在目录中的位置。进行更改后,我的所有导入语句都会出现错误Target of URI doesn't exist,并迫使我使用资源文件的正确文件路径手动更新每个导入语句。有没有办法让 VS Code 在文件名或位置发生更改时自动检测并更新所有依赖文件中的文件路径?
编辑:我在项目中使用绝对路径:import 'package:Project/model/example.dart'