我正在开发一个 Flutter/Dart 应用程序,我需要将 Map 对象从一个屏幕传递到另一个屏幕。但是,我想确保原始 Map 对象保持不变,并且对第二个屏幕上传递的 Map 对象进行的任何修改都不会影响第一个屏幕上的原始 Map 对象。原始Map对象包含JSON init,因此它的结构不清楚。
地图原始地图 = { '问题': '你叫什么名字', }; 地图修改Map = { '问题': '你叫什么名字', '答案': 'XYZ', };
我考虑过使用 copyWith 等方法或从原始 Map 创建一个新的 Map 对象。 地图modifiedMap = new Map.from(originalMap); 地图修改后的Map = JSON.decode(JSON.encode(originalMap));
任何指导或示例将不胜感激。 谢谢!
比起地图,我更喜欢课程。在类中,您可以通过在其构造函数上添加
const
修饰符来使类不可变,然后创建 copyWith
函数。那么如果您想轻松管理数据流,我建议您进行状态管理,以便您可以跨屏幕共享数据并轻松修改它们。
想象一下模型视图控制器。你有 Model 类,即 QuestionAnswerModel
,你有 QuizController
来控制 UI,你有 QuizQuestionView
和 QuizDetailView
访问一个控制器 (QuizController
)
如果你不使用地图的话会容易得多。 无论如何,您可能对代码生成感兴趣(https://pub.dev/packages/freezed这是我最喜欢的用于生成模型类的代码生成),这将允许您自动生成诸如
copyWith
之类的样板文件