访问具有上下文的函数值 - flutter
access function values that has context - flutter
我正在用 flutter 编写一个待办事项应用程序。我有一个时间选择器和日期选择器。我想编写一个函数,当我按下自定义按钮时,将值添加到数据库,而不是当我在日期或时间选择器中按下确定时。但我不知道为上下文提供什么,因为我得到的上下文不能为空。
这是函数和一些变量。
BuildContext contextBuild;
createTask () async {
var date = selectDate(contextBuild);
DatabaseHelper dbHelper = DatabaseHelper();
Task newTask = Task(date: date.toString());
await dbHelper.insertTask(newTask);
}
这是时间选择器函数
selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
builder: (context, child) {
return Theme(
data: ThemeData.light(),
child: child,
);
},
context: context,
initialDate: selectedDate, // Refer step 1
firstDate: DateTime(2020),
lastDate: DateTime(2025),
);
if (picked != null){
var formated = DateFormat.yMMMd().format(picked);
return formated;
} else if (picked == null) {
var nullFormatted = DateFormat.yMMMd().format(selectedDate);
return nullFormatted;
}
}
例如:
// in class declaration
DateTime _selectedDate;
// In build method
FlatButton(
child: Text('Select date'),
onPressed: () async {
_selctedDate = await selectDate(context);
},
),
FlatButton(
child: Text('Save'),
onPressed: () async {
// Save data in database w/o context
_saveInDatabase();
},
),
我正在用 flutter 编写一个待办事项应用程序。我有一个时间选择器和日期选择器。我想编写一个函数,当我按下自定义按钮时,将值添加到数据库,而不是当我在日期或时间选择器中按下确定时。但我不知道为上下文提供什么,因为我得到的上下文不能为空。 这是函数和一些变量。
BuildContext contextBuild;
createTask () async {
var date = selectDate(contextBuild);
DatabaseHelper dbHelper = DatabaseHelper();
Task newTask = Task(date: date.toString());
await dbHelper.insertTask(newTask);
}
这是时间选择器函数
selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
builder: (context, child) {
return Theme(
data: ThemeData.light(),
child: child,
);
},
context: context,
initialDate: selectedDate, // Refer step 1
firstDate: DateTime(2020),
lastDate: DateTime(2025),
);
if (picked != null){
var formated = DateFormat.yMMMd().format(picked);
return formated;
} else if (picked == null) {
var nullFormatted = DateFormat.yMMMd().format(selectedDate);
return nullFormatted;
}
}
例如:
// in class declaration
DateTime _selectedDate;
// In build method
FlatButton(
child: Text('Select date'),
onPressed: () async {
_selctedDate = await selectDate(context);
},
),
FlatButton(
child: Text('Save'),
onPressed: () async {
// Save data in database w/o context
_saveInDatabase();
},
),