Flutter 在颤振中更新模态类属性时未更新UI

Flutter 在颤振中更新模态类属性时未更新UI,flutter,dart,flutter-layout,Flutter,Dart,Flutter Layout,我是颤振新手,在列表中呈现UI时遇到问题。UI不会呈现新数据 基本上,我的列表包含类型为Movie的数据 类电影{ 电影(int-id、字符串标题、字符串缩略图、字符串控制器、, [双重评级、双重价格、双重折扣价格]){ this.id=id; this.title=标题; this.缩略图=缩略图; this.director=director; 这个。评级=评级; 这个价格=价格; this.discountPrice=折扣价格; } int-id; 字符串缩略图; 字符串标题; 字符串控制

我是颤振新手,在列表中呈现UI时遇到问题。UI不会呈现新数据

基本上,我的列表包含类型为
Movie
的数据

类电影{
电影(int-id、字符串标题、字符串缩略图、字符串控制器、,
[双重评级、双重价格、双重折扣价格]){
this.id=id;
this.title=标题;
this.缩略图=缩略图;
this.director=director;
这个。评级=评级;
这个价格=价格;
this.discountPrice=折扣价格;
}
int-id;
字符串缩略图;
字符串标题;
字符串控制器;
双重评级=0;
双倍价格=0;
双倍折扣价格=9000;
}
在第一次开发时,我创建了没有折扣价格的类,然后在第二次迭代中添加了它。但在热重新加载和重新启动时,
折扣价格
不会更新到UI

这是我的小部件

类电影信息扩展无状态小部件{
最后一部电影;
MovieInformation({this.movie}):super(key:ObjectKey(movie));
@凌驾
小部件构建(构建上下文){
返回容器(
身高:140,
装饰:盒子装饰(
borderRadius:const borderRadius.all(
圆形常数半径(8),
),
颜色:颜色,白色,
boxShadow:[
箱形阴影(
颜色:颜色(0x90d5e0e8),
偏移量:偏移量(0,10),
半径:16,
)
],
),
填充:仅限常量边集(左:110),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
划船(
儿童:[
填充物(
填充:仅限常量边集(顶部:8,底部:12,左侧:16),
子:文本(
“\${movie.price}”,
样式:TextStyle(字体大小:12),
),
),
填充物(
填充:仅限常量边集(顶部:8,底部:12,左侧:4),
子:文本(
“\$${movie.discountPrice}”,
样式:TextStyle(
尺寸:12,
颜色:颜色。黑色45,
装饰:textEdition.lineThrough,
),
),
),
],
),
],
),
);
}
}
这是我的主要课程

类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
主题:主题数据(
primaryColor:Color(0xFFF8),
),
家:脚手架(
appBar:appBar(
海拔:0,
领先:IconButton(
图标:图标(图标。V形左),
按下:()=>{},
),
),
正文:主页(
电影:[
电影(
1.
“宇航员”,
"https://d1csarkz8obe9u.cloudfront.net/posterpreviews/space-movie-poster-design-template-18133e937d93002c68b4649ea234d75f_screen.jpg",
“约翰·多伊”,
4.5,
100,//折扣价格被省略,预期使用默认值:9000
),
],
),
),
);
}
}
我用这个片段建立我的列表

扩展(
子项:ListView.builder(
itemCount:movies.length,
itemBuilder:(上下文,索引){
归还电影项目(
电影:电影[索引],,
);
},
),
)
以下是预览: 用于个人使用和培训


在电影构造器中,您使用了折扣价格作为可选的位置参数。如果未向可选位置参数传递任何值,则默认值为null

因此,
this.discountPrice=discountPrice
这里null被分配给discountPrice。(成员变量)//这将覆盖9000的值

解决方案是为可选位置参数提供默认值,如下所示:

class Movie {
  Movie(int id, String title, String thumbnail, String director,
      [double rating, double price, double discountPrice = 9000]) {
    this.id = id;
    this.title = title;
    this.thumbnail = thumbnail;
    this.director = director;
    this.rating = rating;
    this.price = price;
    this.discountPrice = discountPrice;
  }

  int id;
  String thumbnail;
  String title;
  String director;
  double rating = 0;
  double price = 0;
  double discountPrice;
}

@fanjavaid你能投票表决我的答案吗。谢谢:)