title: Missing concrete implementation of statelessWidget.build
body: <p>I am getting this error in Dart: &quot;Missing concrete implementation of &quot;stateless-Widget.build&quot;.
  Does anyone knows what this error means and
  how to solve it?
  What can I do to prevent the compiler from throwing the
  following warning on the following code?is this because of getter method that i used
  because of that two errors also occured</p>
  <pre><code> child: Image.network(
                      imageUrl,         //undefined name imageUrl
                      height: 250,
                      width: double.infinity,
                      fit: BoxFit.cover,
                    ),
                  ),
  
  child: Text(
                        title,                         //undefined name title
                        style: TextStyle(
                          fontSize: 26,
                          color: Colors.white,
                        ),
                        softWrap: true,
                        overflow: TextOverflow.fade,
                      ),
  </code></pre>
  <p>Code:</p>
  <pre><code>import 'package:dishes_app/models/meal.dart';
  import 'package:flutter/material.dart';
  
  class MealItem extends StatelessWidget {     //error
    final String title;
    final String imageUrl;
    final int duration;
    final Complexity complexity;
    final Affordability affordability;
  
    MealItem({
      required this.title,
      required this.imageUrl,
      required this.duration,
      required this.complexity,
      required this.affordability,
    });
  
  
  
    String get complexityText {
      switch (complexity) {
        case Complexity.Simple:
          return 'Simple';
          break;
        case Complexity.Challenging:
          return 'Challenging';
          break;
        case Complexity.Hard:
          return 'Hard';
          break;
        default:
          return 'Unknown';
      }
    }
      String get affordabilityText {
      switch (affordability) {
        case Affordability.Affordable:
          return 'Affordable';
          break;
        case Affordability.Pricey:
          return 'Pricey';
          break;
        case Affordability.Luxurious:
          return 'Expensive';
          break;
        default:
          return 'Unknown';
      }
    }
  
  
    
    }
  
    void selectmeal() {}
  
    
    
  
    @override
    Widget build(BuildContext context) {
      return InkWell(
        onTap: selectmeal,
        child: Card(
          shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15)),
          elevation: 4,
          margin: EdgeInsets.all(10),
          child: Column(
            children: [
              Stack(
                children: [
                  ClipRRect(
                    borderRadius: BorderRadius.only(
                      topLeft: Radius.circular(15),
                      topRight: Radius.circular(15),
                    ),
                    child: Image.network(
                      imageUrl,
                      height: 250,
                      width: double.infinity,
                      fit: BoxFit.cover,
                    ),
                  ),
                  Positioned(
                    bottom: 20,
                    right: 20,
                    child: Container(
                      width: 300,
                      color: Colors.black54,
                      padding: EdgeInsets.symmetric(vertical: 5, horizontal: 20),
                      child: Text(
                        title,
                        style: TextStyle(
                          fontSize: 26,
                          color: Colors.white,
                        ),
                        softWrap: true,
                        overflow: TextOverflow.fade,
                      ),
                    ),
                  ),
                ],
              ),
              Padding(
                padding: const EdgeInsets.all(20.0),
                child: Row(
                  children: [
                    Row(
                      children: [
                        Icon(Icons.schedule),
                        SizedBox(width: 6),
                        Text('$duration min'),
                      ],
                    ),
                    Row(
                      children: [
                        Icon(Icons.work),
                        SizedBox(width: 6),
                        Text('complexityText'),
                      ],
                    ),
                    Row(
                      children: [
                        Icon(Icons.attach_money),
                        SizedBox(width: 6),
                        Text('affordabilityText'),
                      ],
                    ),
                    
                  ],
                  
                ),
              ),
            ],
          ),
        ),
      );
    }
  }
  </code></pre>