首页 > 解决方案 > 向其他类发送数据在颤振飞镖中为空

问题描述

我正在使用模型将数据转换为地图。当我将值从 A 类传递给模型时,它返回一个映射,然后我将返回的值(映射)传递给 B 类。在发送值之前,我在 A 类中打印值(它正在显示数据)但在 B 类中它显示为空。这是A类函数。

///Dummy Data remove later
   jobPostModel = JobPostModel(
      jobPost: 'Web design',
    );

   var data = jobPostModel.toJob(jobPostModel);
   print('before $data');
   JobPostScreen8(data);

这是返回 Map 的模型类函数

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 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}');
  }
}

标签: flutterclassoopdartmodel

解决方案


解决方案是我直接传递给 B 类。我只需要使用导航。

BlocListener<JobBloc, JobState>(
      listener: (context, state) {
        if (state is JobSuccessfulState)
          Navigator.of(context)
              .push(MaterialPageRoute(builder: (_) => JobPostScreen8(state.data)));
})

这是集团

if (event is PreviewPostJob) {
        yield JobSuccessfulState(_updateModel());
      }

和状态

class JobSuccessfulState extends JobState {
  var data;

  JobSuccessfulState([this.data]);
}

推荐阅读