向其他 class 发送数据在 flutter dart 中变得空了
Sending data to other class is getting null in flutter dart
我正在使用模型将数据转换为地图。当我将值从 class A 传递给模型时,它是 returns 一张地图,然后我将返回值 (Map) 传递给 class B。在发送估值之前,我正在打印值class A(显示数据)但在 class B 中显示空值。这是class一个函数。
///Dummy Data remove later
jobPostModel = JobPostModel(
jobPost: 'Web design',
);
var data = jobPostModel.toJob(jobPostModel);
print('before $data');
JobPostScreen8(data);
这是返回 Map
的模型 class 函数
class JobPostModel {
String jobPost;
JobPostModel(
{this.jobPost});
Map toJob(JobPostModel info){
var data = Map<String, dynamic>();
data['jobPost'] = info.jobPost;
return data;
}
factory JobPostModel.fromJob(Map<String, dynamic> data){
return JobPostModel(
jobPost: data['jobPost']
);
}
}
这是另一个 class,我必须在其中显示数据,但它显示为空
class JobPostScreen8 extends StatefulWidget {
Map jobPostModelMapData;
JobPostScreen8([this.jobPostModelMapData]);
@override
_JobPostScreen8State createState() => _JobPostScreen8State();
}
class _JobPostScreen8State extends State<JobPostScreen8> {
@override
void initState() {
super.initState();
print('after ${widget.jobPostModelMapData}');
}
}
解决方案是我直接传递给 class B。我只需要使用导航。
BlocListener<JobBloc, JobState>(
listener: (context, state) {
if (state is JobSuccessfulState)
Navigator.of(context)
.push(MaterialPageRoute(builder: (_) => JobPostScreen8(state.data)));
})
这里是 Bloc
if (event is PreviewPostJob) {
yield JobSuccessfulState(_updateModel());
}
和状态
class JobSuccessfulState extends JobState {
var data;
JobSuccessfulState([this.data]);
}
我正在使用模型将数据转换为地图。当我将值从 class A 传递给模型时,它是 returns 一张地图,然后我将返回值 (Map) 传递给 class B。在发送估值之前,我正在打印值class A(显示数据)但在 class B 中显示空值。这是class一个函数。
///Dummy Data remove later
jobPostModel = JobPostModel(
jobPost: 'Web design',
);
var data = jobPostModel.toJob(jobPostModel);
print('before $data');
JobPostScreen8(data);
这是返回 Map
的模型 class 函数class JobPostModel {
String jobPost;
JobPostModel(
{this.jobPost});
Map toJob(JobPostModel info){
var data = Map<String, dynamic>();
data['jobPost'] = info.jobPost;
return data;
}
factory JobPostModel.fromJob(Map<String, dynamic> data){
return JobPostModel(
jobPost: data['jobPost']
);
}
}
这是另一个 class,我必须在其中显示数据,但它显示为空
class JobPostScreen8 extends StatefulWidget {
Map jobPostModelMapData;
JobPostScreen8([this.jobPostModelMapData]);
@override
_JobPostScreen8State createState() => _JobPostScreen8State();
}
class _JobPostScreen8State extends State<JobPostScreen8> {
@override
void initState() {
super.initState();
print('after ${widget.jobPostModelMapData}');
}
}
解决方案是我直接传递给 class B。我只需要使用导航。
BlocListener<JobBloc, JobState>(
listener: (context, state) {
if (state is JobSuccessfulState)
Navigator.of(context)
.push(MaterialPageRoute(builder: (_) => JobPostScreen8(state.data)));
})
这里是 Bloc
if (event is PreviewPostJob) {
yield JobSuccessfulState(_updateModel());
}
和状态
class JobSuccessfulState extends JobState {
var data;
JobSuccessfulState([this.data]);
}