flutter - Flutter:Freezed 和 json_serializable 包的编译问题
问题描述
我正在尝试将freezed与json_serializable一起使用。我正在使用以下版本
freezed: ^0.9.2
json_serializable: ^3.2.5
freezed_annotation: ^0.7.1
我的冻结课看起来像这样
import 'package:flutter/foundation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'freezed_classes.freezed.dart';
@freezed
abstract class User with _$User {
factory User(
{@required String uid,
String firstName,
String lastName,
String email,
Map<int, String> pictures
}) = _User;
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
}
我正在使用它来生成类
flutter pub run build_runner watch --delete-conflicting-outputs
该命令似乎执行成功,但我的 IDE 似乎抛出了这些编译问题
error: The method '_$_$_UserFromJson' isn't defined for the class '_$_User'. (undefined_method at lib/freezed/freezed_classes.freezed.dart:68)
error: The method '_$_$_UserToJson' isn't defined for the class '_$_User'. (undefined_method at lib/freezed/freezed_classes.freezed.dart:156)
知道为什么会发生这种情况吗?
我尝试了flutter clean和IDE重新启动,但这仍然存在。
解决方案
根据freezed
文档:
The changes necessary to make it compatible with json_serializable consists of two lines:
a new part: part 'model.g.dart';
a new constructor on the targeted class: factory Model.fromJson(Map<String, dynamic> json) => _$ModelFromJson(json);
您缺少以下part
要求json_serializable
:part freezed_classes.g.dart
推荐阅读
- python - 散景:无法更新悬停工具提示的格式
- python - 将从 qpython 获得的 Qtable 转换为格式化字符串的简单方法
- c++ - libVLC 创建两个音频流
- php - 使用 docker 启动 Web 服务器环境
- reactjs - 为什么我的组件在使用 setState 和更改 state 的值时没有重新渲染?
- hyperledger-fabric - Hyperledger Fabric:无法从另一个链码获取字符串数据
- azure-devops - 如何将 bitbucket 中的 repo 同步到 Visual Studio 团队服务?
- crash - AVSpeechSynthesizer 导致 ios11.4 崩溃
- python - 使用 networkx 寻找弱联系
- django - 如何将带有表单的登录用户名保存到数据库?姜戈