将属性从类传递到其状态类,并在Text小部件中使用它

问题描述 投票:0回答:1

我想知道如何将一个字符串从一个类传递到它的状态类。我尝试使用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"),
          )
        ],
      ),
    );
}
}
dart flutter
1个回答
1
投票

将您的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"),
           )
         ],
       ),
     );
   }
 }
© www.soinside.com 2019 - 2024. All rights reserved.