【发布时间】:2021-06-22 06:26:12
【问题描述】:
我在 Dart 中收到此错误:“缺少“stateless-Widget.build”的具体实现。 有谁知道这个错误是什么意思? 如何解决? 我能做些什么来防止编译器抛出 在以下代码上出现以下警告?这是因为我使用了 getter 方法吗 因为这两个错误也发生了
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,
),
代码:
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'),
],
),
],
),
),
],
),
),
);
}
}
【问题讨论】:
标签: flutter