Home > Net >  Null check operator used on a null value in my flutter project
Null check operator used on a null value in my flutter project

Time:10-29

Null check operator used on a null value in calendar! i am assigning calendar with ? mark then the this null operator error is occurring and when i am adding the late calendar LateInitializationError: Field '_calendar@94028380' has not been initialized error is getting

class MedicationListChild extends StatefulWidget {
  final String? medicationName;
  final String? medicationUID;
  final String? childUid;
  final String? childName;
  final Calendar? calendar;

  const MedicationListChild({
    Key? key,
    this.medicationName,
    this.medicationUID,
    this.childUid,
    this.childName,
    this.calendar,
  }) : super(key: key);

  @override
  _MedicationListChildState createState() => _MedicationListChildState();
}

class _MedicationListChildState extends State<MedicationListChild> {
  Calendar? _calendar;

  @override
  void initState() => super.initState();

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(top: 7.0),
      child: Card(
        elevation: 3.0,
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(7.0)),
        child: InkWell(
          splashColor: Colors.blue,
          highlightColor: Colors.green,
          onTap: () {
            Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) => CalendarEventPage(_calendar!),
              ),
            );
          },
               

CodePudding user response:

Instead of using _calendar use widget.calendar:

Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) => CalendarEventPage(widget.calendar!),
              ),
            );

CodePudding user response:

You didn't assign any value on _calendar, therefore it stays null.

Instead of using ! directly, it is better to do a null check 1st.

 onTap: () {
           if(_calendar!=null) {
             Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) => CalendarEventPage(_calendar),
              ),
            );
          },
       }

If you just like access the widget variable do

 onTap: () {
           if(widget.calendar!=null) {
             Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) => CalendarEventPage(widget.calendar),
              ),
            );
          },
       }

CodePudding user response:

Try the following code:

class MedicationListChild extends StatefulWidget {
  final String? medicationName;
  final String? medicationUID;
  final String? childUid;
  final String? childName;
  final Calendar? calendar;

  const MedicationListChild({
    Key? key,
    this.medicationName,
    this.medicationUID,
    this.childUid,
    this.childName,
    this.calendar,
  }) : super(key: key);

  @override
  _MedicationListChildState createState() => _MedicationListChildState();
}

class _MedicationListChildState extends State<MedicationListChild> {

  @override
  void initState() => super.initState();

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(top: 7.0),
      child: Card(
        elevation: 3.0,
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(7.0)),
        child: InkWell(
          splashColor: Colors.blue,
          highlightColor: Colors.green,
          onTap: () {
            Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) => CalendarEventPage(widget.calendar!),
              ),
            );
          },
  • Related