我想知道如何将一个字符串从一个类传递到它的状态类。我尝试使用widget.foodName
将字符串传递给Text小部件,但它返回错误“此常量表达式的评估会引发异常”。我猜,因为构造函数声明了该字符串,它返回了我的问题。任何想法如何解决这个问题?
import 'package:flutter/material.dart';
class FoodCard extends StatefulWidget {
@override
FoodCard(this.chosenIcon, this.foodName, this.expireDate);
int chosenIcon;
String foodName;
String expireDate;
_FoodCardState createState() => _FoodCardState();
}
class _FoodCardState extends State<FoodCard> {
@override
Widget build(BuildContext context) {
return Card(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
const ListTile(
leading: Icon(Icons.apps),
title: Text(widget.foodName), // <<<--------------
subtitle: Text("xyz"),
)
],
),
);
}
}
将您的FoodCard
类更改为以下结构,您将能够毫无问题地调用foodName
属性。这些更改是在Stateful
小部件类documentation之后进行的:
class FoodCard extends StatefulWidget {
FoodCard({Key key, this.chosenIcon, this.foodName, this.expireDate}): super(key: key);
final int chosenIcon;
final String foodName;
final String expireDate;
@override
_FoodCardState createState() => _FoodCardState();
}
你还应该删除在const
小部件之前添加的ListTile
:
class _FoodCardState extends State<FoodCard> {
@override
Widget build(BuildContext context) {
return Card(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
ListTile(
leading: Icon(Icons.apps),
title: Text(widget.foodName), // <<<--------------
subtitle: Text("xyz"),
)
],
),
);
}
}