mirror of
https://github.com/alibaba/flutter-go.git
synced 2025-06-15 17:28:35 +08:00
fix: 部分代码添加 mounted
This commit is contained in:
lib
components
views/welcome_page
widgets
components
elements
Form
Button
DropdownButton
FloatingActionButton
IconButton
OutlineButton
RaisedButton
RawMaterialButton
CheckBox
Media/Canvas
themes/Cupertino/CupertinoPicker
@ -33,11 +33,13 @@ class DisclaimerMsgState extends State<DisclaimerMsg> {
|
|||||||
void refs(bool value) async {
|
void refs(bool value) async {
|
||||||
final SharedPreferences prefs = await _prefs;
|
final SharedPreferences prefs = await _prefs;
|
||||||
final bool unKnow = value;
|
final bool unKnow = value;
|
||||||
setState(() {
|
if (mounted) {
|
||||||
_unKnow = prefs.setBool("disclaimer::Boolean", unKnow).then((bool success) {
|
setState(() {
|
||||||
return unKnow;
|
_unKnow = prefs.setBool("disclaimer::Boolean", unKnow).then((bool success) {
|
||||||
|
return unKnow;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -135,12 +137,12 @@ class DisclaimerMsgState extends State<DisclaimerMsg> {
|
|||||||
tristate: false,
|
tristate: false,
|
||||||
value: _valBool,
|
value: _valBool,
|
||||||
onChanged: (bool bol) {
|
onChanged: (bool bol) {
|
||||||
setState(() {
|
if(mounted) {
|
||||||
_valBool = bol;
|
setState(() {
|
||||||
});
|
_valBool = bol;
|
||||||
// refs(bol);
|
});
|
||||||
Navigator.of(context)
|
}
|
||||||
.pop(); // here I pop to avoid multiple Dialogs
|
Navigator.of(context).pop(); // here I pop to avoid multiple Dialogs
|
||||||
showAlertDialog(context); //here i call the same function
|
showAlertDialog(context); //here i call the same function
|
||||||
}),
|
}),
|
||||||
Text('不再自动提示', style: TextStyle(fontSize: 14)),
|
Text('不再自动提示', style: TextStyle(fontSize: 14)),
|
||||||
|
@ -61,7 +61,9 @@ class _ListRefreshState extends State<ListRefresh> {
|
|||||||
Future _getMoreData() async {
|
Future _getMoreData() async {
|
||||||
if (!isLoading && _hasMore) {
|
if (!isLoading && _hasMore) {
|
||||||
// 如果上一次异步请求数据完成 同时有数据可以加载
|
// 如果上一次异步请求数据完成 同时有数据可以加载
|
||||||
setState(() => isLoading = true);
|
if (mounted) {
|
||||||
|
setState(() => isLoading = true);
|
||||||
|
}
|
||||||
//if(_hasMore){ // 还有数据可以拉新
|
//if(_hasMore){ // 还有数据可以拉新
|
||||||
List newEntries = await mokeHttpRequest();
|
List newEntries = await mokeHttpRequest();
|
||||||
//if (newEntries.isEmpty) {
|
//if (newEntries.isEmpty) {
|
||||||
|
@ -24,52 +24,54 @@ class FourthPageState extends State<FourthPage> with TickerProviderStateMixin {
|
|||||||
slideUpdateStream = new StreamController<SlideUpdate>();
|
slideUpdateStream = new StreamController<SlideUpdate>();
|
||||||
|
|
||||||
slideUpdateStream.stream.listen((SlideUpdate event) {
|
slideUpdateStream.stream.listen((SlideUpdate event) {
|
||||||
setState(() {
|
if(mounted) {
|
||||||
if (event.updateType == UpdateType.dragging) {
|
setState(() {
|
||||||
slideDirection = event.direction;
|
if (event.updateType == UpdateType.dragging) {
|
||||||
slidePercent = event.slidePercent;
|
slideDirection = event.direction;
|
||||||
|
slidePercent = event.slidePercent;
|
||||||
|
|
||||||
if (slideDirection == SlideDirection.leftToRight) {
|
if (slideDirection == SlideDirection.leftToRight) {
|
||||||
nextPageIndex = activeIndex - 1;
|
nextPageIndex = activeIndex - 1;
|
||||||
} else if (slideDirection == SlideDirection.rightToLeft) {
|
} else if (slideDirection == SlideDirection.rightToLeft) {
|
||||||
nextPageIndex = activeIndex + 1;
|
nextPageIndex = activeIndex + 1;
|
||||||
} else {
|
} else {
|
||||||
nextPageIndex = activeIndex;
|
nextPageIndex = activeIndex;
|
||||||
|
}
|
||||||
|
} else if (event.updateType == UpdateType.doneDragging) {
|
||||||
|
if (slidePercent > 0.5) {
|
||||||
|
animatedPageDragger = new AnimatedPageDragger(
|
||||||
|
slideDirection: slideDirection,
|
||||||
|
transitionGoal: TransitionGoal.open,
|
||||||
|
slidePercent: slidePercent,
|
||||||
|
slideUpdateStream: slideUpdateStream,
|
||||||
|
vsync: this,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
animatedPageDragger = new AnimatedPageDragger(
|
||||||
|
slideDirection: slideDirection,
|
||||||
|
transitionGoal: TransitionGoal.close,
|
||||||
|
slidePercent: slidePercent,
|
||||||
|
slideUpdateStream: slideUpdateStream,
|
||||||
|
vsync: this,
|
||||||
|
);
|
||||||
|
|
||||||
|
nextPageIndex = activeIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
animatedPageDragger.run();
|
||||||
|
} else if (event.updateType == UpdateType.animating) {
|
||||||
|
slideDirection = event.direction;
|
||||||
|
slidePercent = event.slidePercent;
|
||||||
|
} else if (event.updateType == UpdateType.doneAnimating) {
|
||||||
|
activeIndex = nextPageIndex;
|
||||||
|
|
||||||
|
slideDirection = SlideDirection.none;
|
||||||
|
slidePercent = 0.0;
|
||||||
|
|
||||||
|
animatedPageDragger.dispose();
|
||||||
}
|
}
|
||||||
} else if (event.updateType == UpdateType.doneDragging) {
|
});
|
||||||
if (slidePercent > 0.5) {
|
}
|
||||||
animatedPageDragger = new AnimatedPageDragger(
|
|
||||||
slideDirection: slideDirection,
|
|
||||||
transitionGoal: TransitionGoal.open,
|
|
||||||
slidePercent: slidePercent,
|
|
||||||
slideUpdateStream: slideUpdateStream,
|
|
||||||
vsync: this,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
animatedPageDragger = new AnimatedPageDragger(
|
|
||||||
slideDirection: slideDirection,
|
|
||||||
transitionGoal: TransitionGoal.close,
|
|
||||||
slidePercent: slidePercent,
|
|
||||||
slideUpdateStream: slideUpdateStream,
|
|
||||||
vsync: this,
|
|
||||||
);
|
|
||||||
|
|
||||||
nextPageIndex = activeIndex;
|
|
||||||
}
|
|
||||||
|
|
||||||
animatedPageDragger.run();
|
|
||||||
} else if (event.updateType == UpdateType.animating) {
|
|
||||||
slideDirection = event.direction;
|
|
||||||
slidePercent = event.slidePercent;
|
|
||||||
} else if (event.updateType == UpdateType.doneAnimating) {
|
|
||||||
activeIndex = nextPageIndex;
|
|
||||||
|
|
||||||
slideDirection = SlideDirection.none;
|
|
||||||
slidePercent = 0.0;
|
|
||||||
|
|
||||||
animatedPageDragger.dispose();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,9 +43,11 @@ class _AnimatedListFullDefault extends State<AnimatedListFullDefault> {
|
|||||||
void remove() {
|
void remove() {
|
||||||
if (_selectedItem != null) {
|
if (_selectedItem != null) {
|
||||||
_list.removeAt(_list.indexOf(_selectedItem));
|
_list.removeAt(_list.indexOf(_selectedItem));
|
||||||
setState(() {
|
if(mounted) {
|
||||||
_selectedItem = null;
|
setState(() {
|
||||||
});
|
_selectedItem = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,9 +25,11 @@ class _BottomNavigationBarFullDefault extends State {
|
|||||||
int _currentIndex = 1;
|
int _currentIndex = 1;
|
||||||
|
|
||||||
void _onItemTapped(int index) {
|
void _onItemTapped(int index) {
|
||||||
setState(() {
|
if(mounted) {
|
||||||
_currentIndex = index;
|
setState(() {
|
||||||
});
|
_currentIndex = index;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -124,9 +124,11 @@ class DropdownButtonCustom extends StatelessWidget {
|
|||||||
value: selectItemValue,
|
value: selectItemValue,
|
||||||
//下拉菜单item点击之后的回调
|
//下拉菜单item点击之后的回调
|
||||||
onChanged: (T){
|
onChanged: (T){
|
||||||
parent.setState((){
|
if (parent.mounted) {
|
||||||
selectItemValue = T;
|
parent.setState(() {
|
||||||
});
|
selectItemValue = T;
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
//设置阴影的高度
|
//设置阴影的高度
|
||||||
elevation: 24,
|
elevation: 24,
|
||||||
|
@ -50,9 +50,11 @@ class _DemoState extends State<Demo> {
|
|||||||
String buttonShapeType = 'border'; // 边框类型
|
String buttonShapeType = 'border'; // 边框类型
|
||||||
void setButtonShapeType(){
|
void setButtonShapeType(){
|
||||||
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
||||||
this.setState((){
|
if(mounted) {
|
||||||
buttonShapeType = _buttonShapeType;
|
this.setState(() {
|
||||||
});
|
buttonShapeType = _buttonShapeType;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -45,9 +45,11 @@ class _DemoState extends State<Demo> {
|
|||||||
String buttonShapeType = 'border'; // 边框类型
|
String buttonShapeType = 'border'; // 边框类型
|
||||||
void setButtonShapeType(){
|
void setButtonShapeType(){
|
||||||
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
||||||
this.setState((){
|
if(mounted) {
|
||||||
buttonShapeType = _buttonShapeType;
|
this.setState(() {
|
||||||
});
|
buttonShapeType = _buttonShapeType;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -54,9 +54,11 @@ class _DemoState extends State<Demo> {
|
|||||||
String buttonShapeType = 'border'; // 边框类型
|
String buttonShapeType = 'border'; // 边框类型
|
||||||
void setButtonShapeType(){
|
void setButtonShapeType(){
|
||||||
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
||||||
this.setState((){
|
if (mounted) {
|
||||||
buttonShapeType = _buttonShapeType;
|
this.setState(() {
|
||||||
});
|
buttonShapeType = _buttonShapeType;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -53,9 +53,11 @@ class _DemoState extends State<Demo> {
|
|||||||
String buttonShapeType = 'border'; // 边框类型
|
String buttonShapeType = 'border'; // 边框类型
|
||||||
void setButtonShapeType(){
|
void setButtonShapeType(){
|
||||||
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
||||||
this.setState((){
|
if(mounted) {
|
||||||
buttonShapeType = _buttonShapeType;
|
this.setState(() {
|
||||||
});
|
buttonShapeType = _buttonShapeType;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -43,9 +43,11 @@ class _DemoState extends State<Demo> {
|
|||||||
String buttonShapeType = 'border'; // 边框类型
|
String buttonShapeType = 'border'; // 边框类型
|
||||||
void setButtonShapeType(){
|
void setButtonShapeType(){
|
||||||
//String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
//String _buttonShapeType = (buttonShapeType == 'border') ? 'radius' : 'border';
|
||||||
this.setState((){
|
if( mounted ) {
|
||||||
//buttonShapeType = _buttonShapeType;
|
this.setState(() {
|
||||||
});
|
//buttonShapeType = _buttonShapeType;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
@ -30,9 +30,11 @@ class _CheckboxDefault extends State {
|
|||||||
tristate:false,
|
tristate:false,
|
||||||
value: isChecked,
|
value: isChecked,
|
||||||
onChanged: (bool bol) {
|
onChanged: (bool bol) {
|
||||||
setState((){
|
if(mounted) {
|
||||||
isChecked = bol;
|
setState(() {
|
||||||
});
|
isChecked = bol;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -58,9 +60,11 @@ class CheckboxSelect extends StatelessWidget {
|
|||||||
tristate:false,
|
tristate:false,
|
||||||
value: parent.selectValue == this.index,
|
value: parent.selectValue == this.index,
|
||||||
onChanged: (bool bol) {
|
onChanged: (bool bol) {
|
||||||
parent.setState((){
|
if(parent.mounted) {
|
||||||
parent.selectValue = bol ? this.index : -1;
|
parent.setState(() {
|
||||||
});
|
parent.selectValue = bol ? this.index : -1;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,9 @@ class _CheckboxListTileStateDefault extends State {
|
|||||||
for (var i = 0; i < isChecks.length; i++) {
|
for (var i = 0; i < isChecks.length; i++) {
|
||||||
isChecks[i] = value;
|
isChecks[i] = value;
|
||||||
}
|
}
|
||||||
setState(() => _value = value);
|
if(mounted) {
|
||||||
|
setState(() => _value = value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bool isCheck=false;
|
bool isCheck=false;
|
||||||
List<bool> isChecks=[false,false,false,false];
|
List<bool> isChecks=[false,false,false,false];
|
||||||
@ -55,9 +57,11 @@ class _CheckboxListTileStateDefault extends State {
|
|||||||
activeColor: _value ? Colors.red : Colors.green,
|
activeColor: _value ? Colors.red : Colors.green,
|
||||||
controlAffinity: ListTileControlAffinity.platform,
|
controlAffinity: ListTileControlAffinity.platform,
|
||||||
onChanged: (bool){
|
onChanged: (bool){
|
||||||
setState(() {
|
if(mounted) {
|
||||||
isChecks[0]=bool;
|
setState(() {
|
||||||
});
|
isChecks[0] = bool;
|
||||||
|
});
|
||||||
|
}
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
Center(
|
Center(
|
||||||
|
@ -39,9 +39,11 @@ class CustomViewPageState extends State<CustomViewPage>
|
|||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
getImage("assets/images/painterImg.jpeg").then((data) {
|
getImage("assets/images/painterImg.jpeg").then((data) {
|
||||||
setState(() {
|
if (mounted) {
|
||||||
image = data;
|
setState(() {
|
||||||
});
|
image = data;
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,9 @@ class CustomViewPageState extends State<CustomViewPage>
|
|||||||
_doubleAnimation = Tween(begin: 0.0, end: 360.0).animate(_controller);
|
_doubleAnimation = Tween(begin: 0.0, end: 360.0).animate(_controller);
|
||||||
|
|
||||||
_controller.addListener(() {
|
_controller.addListener(() {
|
||||||
this.setState(() {});
|
if(mounted){
|
||||||
|
this.setState(() {});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
onAnimationStart();
|
onAnimationStart();
|
||||||
}
|
}
|
||||||
|
@ -30,9 +30,11 @@ class _PainterSketchDomeState extends State<PainterSketchDome> {
|
|||||||
final Offset xy = box.globalToLocal(detail.globalPosition);// 重要需要转换以下坐标位置
|
final Offset xy = box.globalToLocal(detail.globalPosition);// 重要需要转换以下坐标位置
|
||||||
Offset p = Offset(xy.dx, xy.dy - 60);
|
Offset p = Offset(xy.dx, xy.dy - 60);
|
||||||
//Offset p = Offset(detail.globalPosition.dx, detail.globalPosition.dy - 60);
|
//Offset p = Offset(detail.globalPosition.dx, detail.globalPosition.dy - 60);
|
||||||
setState(() {
|
if (mounted) {
|
||||||
nowPoints.add(p);
|
setState(() {
|
||||||
});
|
nowPoints.add(p);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void newGestureDetector(DragStartDetails detail) {
|
void newGestureDetector(DragStartDetails detail) {
|
||||||
@ -45,9 +47,11 @@ class _PainterSketchDomeState extends State<PainterSketchDome> {
|
|||||||
final Offset xy = box.globalToLocal(detail.globalPosition);// 重要需要转换以下坐标位置
|
final Offset xy = box.globalToLocal(detail.globalPosition);// 重要需要转换以下坐标位置
|
||||||
Offset p = Offset(xy.dx, xy.dy - 60);
|
Offset p = Offset(xy.dx, xy.dy - 60);
|
||||||
//Offset p = Offset(detail.globalPosition.dx, detail.globalPosition.dy - 60);
|
//Offset p = Offset(detail.globalPosition.dx, detail.globalPosition.dy - 60);
|
||||||
setState(() {
|
if (mounted) {
|
||||||
nowPoints.add(p);
|
setState(() {
|
||||||
});
|
nowPoints.add(p);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void changeColor (Color c){
|
void changeColor (Color c){
|
||||||
@ -55,10 +59,12 @@ class _PainterSketchDomeState extends State<PainterSketchDome> {
|
|||||||
LinePoints l = LinePoints(new List<Offset>.from(nowPoints), nowColor);
|
LinePoints l = LinePoints(new List<Offset>.from(nowPoints), nowColor);
|
||||||
lines.add(l);
|
lines.add(l);
|
||||||
}
|
}
|
||||||
setState(() {
|
if (mounted) {
|
||||||
nowPoints.clear();
|
setState(() {
|
||||||
nowColor = c;
|
nowPoints.clear();
|
||||||
});
|
nowColor = c;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Color> colors = <Color>[
|
List<Color> colors = <Color>[
|
||||||
@ -74,10 +80,12 @@ class _PainterSketchDomeState extends State<PainterSketchDome> {
|
|||||||
Colors.cyanAccent,];
|
Colors.cyanAccent,];
|
||||||
|
|
||||||
void _tapClear(){
|
void _tapClear(){
|
||||||
setState(() {
|
if (mounted) {
|
||||||
lines.clear();
|
setState(() {
|
||||||
nowPoints.clear();
|
lines.clear();
|
||||||
});
|
nowPoints.clear();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -108,7 +108,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
backgroundColor: CupertinoColors.white,// 所有子节点下面的背景颜色
|
backgroundColor: CupertinoColors.white,// 所有子节点下面的背景颜色
|
||||||
useMagnifier:true,// 是否使用放大效果
|
useMagnifier:true,// 是否使用放大效果
|
||||||
onSelectedItemChanged: (int index) { // 当正中间选项改变时的回调
|
onSelectedItemChanged: (int index) { // 当正中间选项改变时的回调
|
||||||
setState(() => _selectedColorIndex = index);
|
if (mounted) {
|
||||||
|
setState(() => _selectedColorIndex = index);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
children: List<Widget>.generate(coolColorNames.length, (int index) {
|
children: List<Widget>.generate(coolColorNames.length, (int index) {
|
||||||
return Center(child:
|
return Center(child:
|
||||||
@ -144,7 +146,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
CupertinoTimerPicker(
|
CupertinoTimerPicker(
|
||||||
initialTimerDuration: timer,
|
initialTimerDuration: timer,
|
||||||
onTimerDurationChanged: (Duration newTimer) {
|
onTimerDurationChanged: (Duration newTimer) {
|
||||||
setState(() => timer = newTimer);
|
if (mounted) {
|
||||||
|
setState(() => timer = newTimer);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -176,7 +180,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
mode: CupertinoDatePickerMode.date,
|
mode: CupertinoDatePickerMode.date,
|
||||||
initialDateTime: date,
|
initialDateTime: date,
|
||||||
onDateTimeChanged: (DateTime newDateTime) {
|
onDateTimeChanged: (DateTime newDateTime) {
|
||||||
setState(() => date = newDateTime);
|
if (mounted) {
|
||||||
|
setState(() => date = newDateTime);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -206,7 +212,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
mode: CupertinoDatePickerMode.time,
|
mode: CupertinoDatePickerMode.time,
|
||||||
initialDateTime: time,
|
initialDateTime: time,
|
||||||
onDateTimeChanged: (DateTime newDateTime) {
|
onDateTimeChanged: (DateTime newDateTime) {
|
||||||
setState(() => time = newDateTime);
|
if (mounted) {
|
||||||
|
setState(() => time = newDateTime);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -236,7 +244,9 @@ class _CupertinoPickerDemoState extends State<CupertinoPickerDemo> {
|
|||||||
mode: CupertinoDatePickerMode.dateAndTime,
|
mode: CupertinoDatePickerMode.dateAndTime,
|
||||||
initialDateTime: dateTime,
|
initialDateTime: dateTime,
|
||||||
onDateTimeChanged: (DateTime newDateTime) {
|
onDateTimeChanged: (DateTime newDateTime) {
|
||||||
setState(() => dateTime = newDateTime);
|
if (mounted) {
|
||||||
|
setState(() => dateTime = newDateTime);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user