[更改对象副本的DateTime
属性时,它也在更新原始对象。在下面的代码中,当按下按钮时,我希望仅_reminder.dueDate
被更新,但是_reminder.dueDate
和widget.reminder.dueDate
都同时被更新。
import 'package:flutter/material.dart';
import 'package:realminder/models/reminder.dart';
class Test extends StatefulWidget {
final Reminder reminder; // <-- Original object
Test({
@required this.reminder,
});
@override
_TestState createState() => _TestState();
}
class _TestState extends State<Test> {
Reminder _reminder;
@override
void initState() {
_reminder = widget.reminder; // <-- Create a copy of object
super.initState();
}
@override
Widget build(BuildContext context) {
return RaisedButton(
onPressed: () {
_reminder.dueDate = DateTime.now(); // <-- Both objects being updated here... Why?
},
);
}
}
_reminder.dueDate = DateTime.now();
之前:
[C0之后:_reminder.dueDate = DateTime.now();