如何解决我有关于位置参数的错误,我不太明白请帮助
我正在开发一个社区应用程序,它在底部栏上有一系列选项卡。我已经能够实现主要代码,除了最后一个之外,所有选项卡都在工作。它旨在在单击时显示用户个人资料,但由于位置参数而出现错误,我无法完全理解解决方案。这是给我错误的代码(从我的 main.dart 文件中提取):
providers: [
ChangeNotifierProvider<AppState>(create: (_) => AppState()),ChangeNotifierProvider<AuthState>(create: (_) => AuthState()),ChangeNotifierProvider<FeedState>(create: (_) => FeedState()),ChangeNotifierProvider<ChatState>(create: (_) => ChatState()),ChangeNotifierProvider<SearchState>(create: (_) => SearchState()),ChangeNotifierProvider<NotificationState>(
create: (_) => NotificationState()),***ChangeNotifierProvider<ProfileState>(create: (_) => ProfileState()),***
],
我在最后一行收到错误:预期有 1 个位置参数,但找到 0 个。 尝试添加缺少的参数。
这是我认为最相关的来自 Profile State 的代码的一部分:
import 'package:firebase_database/firebase_database.dart' as dabase;
class ProfileState extends ChangeNotifier {
ProfileState(this.profileId) {
databaseInit();
userId = FirebaseAuth.instance.currentUser.uid;
_getloggedInUserProfile(userId);
_getProfileUser(profileId);
}
/// This is the id of user who is logegd into the app.
String userId;
/// Profile data of logged in user.
UserModel _userModel;
UserModel get userModel => _userModel;
dabase.Query _profileQuery;
StreamSubscription<Event> profileSubscription;
/// This is the id of user whose profile is open.
final String profileId;
/// Profile data of user whose profile is open.
UserModel _profileUserModel;
UserModel get profileUserModel => _profileUserModel;
bool _isBusy = true;
bool get isbusy => _isBusy;
set loading(bool value) {
_isBusy = value;
notifyListeners();
}
databaseInit() {
try {
if (_profileQuery == null) {
_profileQuery = kDatabase.child("profile").child(profileId);
profileSubscription = _profileQuery.onValue.listen(_onProfileChanged);
}
} catch (error) {
cprint(error,errorIn: 'databaseInit');
}
}
bool get isMyProfile => profileId == userId;
/// Fetch profile of logged in user
void _getloggedInUserProfile(String userId) async {
kDatabase
.child("profile")
.child(userId)
.once()
.then((DataSnapshot snapshot) {
if (snapshot.value != null) {
var map = snapshot.value;
if (map != null) {
_userModel = UserModel.fromJson(map);
}
}
});
}
/// Fetch profile data of user whoose profile is opened
void _getProfileUser(String userProfileId) {
assert(userProfileId != null);
try {
loading = true;
kDatabase
.child("profile")
.child(userProfileId)
.once()
.then((DataSnapshot snapshot) {
if (snapshot.value != null) {
var map = snapshot.value;
if (map != null) {
_profileUserModel = UserModel.fromJson(map);
Utility.logEvent('get_profile');
}
}
loading = false;
});
} catch (error) {
loading = false;
cprint(error,errorIn: 'getProfileUser');
}
}
请问怎么解决?
解决方法
您将 this.profileId 作为 ProfileState 构造函数中的参数,而在主文件中的提供程序中,您没有为构造函数提供所需的参数。这就是我相信您收到此错误的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。