'DateTime error while picking date in flutter
i'm trying to display daytime using a separate function unless it's returning the following error:
*Error: The argument type 'Future' can't be assigned to the parameter type 'void Function()?'. lib/screens/add_analyse_patient.dart:81
- 'Future' is from 'dart:async'. onClicked: pickDate(context)),*
Here is the code:
button_widget.dart:
import 'package:flutter/material.dart';
class ButtonHeaderWidget extends StatelessWidget {
final String title;
final String text;
final VoidCallback onClicked;
const ButtonHeaderWidget({
Key? key,
required this.title,
required this.text,
required this.onClicked,
}) : super(key: key);
@override
Widget build(BuildContext context) => HeaderWidget(
title: title,
child: ButtonWidget(
text: text,
onClicked: onClicked,
),
);
}
class ButtonWidget extends StatelessWidget {
final String text;
final VoidCallback onClicked;
const ButtonWidget({
Key? key,
required this.text,
required this.onClicked,
}) : super(key: key);
@override
Widget build(BuildContext context) => ElevatedButton(
style: ElevatedButton.styleFrom(
minimumSize: Size.fromHeight(40),
primary: Colors.white,
),
child: FittedBox(
child: Text(
text,
style: TextStyle(fontSize: 20, color: Colors.black),
),
),
onPressed: onClicked,
);
}
class HeaderWidget extends StatelessWidget {
final String title;
final Widget child;
const HeaderWidget({
Key? key,
required this.title,
required this.child,
}) : super(key: key);
@override
Widget build(BuildContext context) => Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: TextStyle(
color: Colors.white,
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 8),
child,
],
);
}
And the function with which i'm trying to display the time:
Future pickDate(BuildContext context) async {
final initialDate = DateTime.now();
final newDate = await showDatePicker(
context: context,
initialDate: initialDate,
firstDate: DateTime(DateTime.now().year - 5),
lastDate: DateTime(DateTime.now().year + 5),
);
if (newDate == null) return;
}
And finally the widget where the error occurs:
ButtonHeaderWidget(
title: 'Date',
text: 'Select Date',
onClicked: pickDate(context)),
Solution 1:[1]
Fixed it by changing the onClicked to: onClicked: () => pickDate(context))
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Kaisama |
