import 'package:flutter/material.dart';
import 'package:get/get.dart';
//import 'package:get/get_core/src/get_main.dart';
import 'package:intl/intl.dart';
import 'package:menstrual_period_tracker/input2.dart';
import 'package:nepali_date_picker/nepali_date_picker.dart';
class Picker extends StatefulWidget {
const Picker({super.key});
@override
State<Picker> createState() => _PickerState();
}
class _PickerState extends State<Picker> {
NepaliDateTime _dateTime = NepaliDateTime.now();
void _showdatepicker() async {
await showDatePicker(
context: context,
initialDate: NepaliDateTime.now(),
firstDate: NepaliDateTime(2002),
lastDate: NepaliDateTime.now(),
).then((value) {
setState(() {
NepaliDateTime? updatevalue = NepaliDateTime.tryParse(value.toString()),
_dateTime = updatevalue;
});
});
} //在我的代码中,我使用了尼泊尔日历,所以我用NepaliDateTime替换了DateTime,then方法使用的值是DateTime,所以我必须将其类型转换为NepaliDateTime,我将该变量赋值给_datetime,但是值没有更改//警告消息是localvaraible的值没有使用
2条答案
按热度按时间ocebsuys1#
可能是因为toString()后面有逗号而出错。请尝试将其更改为分号。
最好将非状态转换器代码从setState中移出:
y53ybaqx2#
这是因为不建议使用
setState
方法进行计算。从docs:
通常,建议setState方法仅用于 Package 对状态的实际更改,而不是可能与更改关联的任何计算。
在代码示例中,可以将分析移出方法。