我正在调查Flutter冷冻包与以下模型:
import 'package:freezed_annotation/freezed_annotation.dart';
part 'ledger_summary_model.freezed.dart';
part 'ledger_summary_model.g.dart';
@freezed
class LedgerSummary with _$LedgerSummary {
const factory LedgerSummary({
required int ledgerId,
}) = _LedgerSummary;
factory LedgerSummary.fromJson(Map<String, dynamic> json) =>
_$LedgerSummaryFromJson(json);
}
测试代码
LedgerSummary ledgerSummary = const LedgerSummary(ledgerId: 1);
LedgerSummary ledgerSummaryAgain =
LedgerSummary.fromJson(jsonDecode(jsonEncode(ledgerSummary)));
print(ledgerSummaryAgain.runtimeType.toString());
Prints _$_LedgerSummary,而我更希望是LedgerSummary。
我的pubspec.yaml是
name: test_freeze
description: A new Flutter project.
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: '>=3.1.0 <4.0.0'
dependencies:
flutter:
sdk: flutter
freezed: ^2.4.0
freezed_annotation: ^2.1.0
flutter_localizations:
sdk: flutter
dart_mappable:
dart_mappable_builder:
dev_dependencies:
flutter_test:
sdk: flutter
build_runner: ^2.1.0
flutter_launcher_icons: ^0.13.1
flutter_lints: ^2.0.1
flutter:
uses-material-design: true
和Flutter医生-v输出是
[√] Flutter (Channel stable, 3.13.1, on Microsoft Windows [Version 10.0.19044.3086], locale et-EE)
• Flutter version 3.13.1 on channel stable at c:\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision e1e47221e8 (6 weeks ago), 2023-08-22 21:43:18 -0700
• Engine revision b20183e040
• Dart version 3.1.0
• DevTools version 2.25.0
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at C:\Users\pavel\AppData\Local\Android\Sdk
• Platform android-34, build-tools 34.0.0
• ANDROID_HOME = C:\Users\pavel\AppData\Local\Android\Sdk
• ANDROID_SDK_ROOT = C:\Users\pavel\AppData\Local\Android\Sdk
• Java binary at: c:\Program Files\Android\Android Studio\jbr\bin\java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.1.4)
• Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
• Visual Studio Community 2022 version 17.1.32407.343
• Windows 10 SDK version 10.0.19041.0
[√] Android Studio (version 2022.3)
• Android Studio at c:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• android-studio-dir = c:\Program Files\Android\Android Studio
• Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)
[√] VS Code (version 1.82.2)
• VS Code at C:\Users\pavel\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.72.0
[√] Connected device (4 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64 • Android 14 (API 34) (emulator)
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.19044.3086]
• Chrome (web) • chrome • web-javascript • Google Chrome 116.0.5845.141
• Edge (web) • edge • web-javascript • Microsoft Edge 117.0.2045.43
[√] Network resources
• All expected network resources are available.
• No issues found!
我的预期用例是实现一个包含多个冻结类的存储库,这些冻结类将作为通用对象提交给单个滚动视图控制器。
1条答案
按热度按时间cgyqldqp1#
https://github.com/rrousselGit(非常迅速的答复的荣誉)通知,这种行为是设计到包。