有我的代码: StreamBuilder 有错误
<块引用>错误参数类型“对象?”不能分配给参数 输入“颜色?
body: Center(
child: StreamBuilder(
stream: bloc.stateStream,
initialData: Colors.amber,
builder: (context, snapshot) {
return AnimatedContainer(
duration: Duration(milliseconds: 500),
width: 100,
height: 100,
color: snapshot.data,
);
},
),
),
body: Center(
child: StreamBuilder(
stream: bloc.stateStream,
initialData: Colors.amber,
builder: (context, snapshot) {
return AnimatedContainer(
duration: Duration(milliseconds: 500),
width: 100,
height: 100,
color: snapshot.data,
);
},
),
),
),
);
},
}
答案 0 :(得分:0)
您收到错误是因为 snapshot
的类型为 AsyncSnapshot<Object?>
并且当您将颜色设置为 snapshot.data
时,类型为 Object
,因为颜色存在类型不匹配应该是 Color
类型。
您可以通过指定您的 StreamBuilder 正在使用的流类型来修复错误,如下所示:
body: Center(
child: StreamBuilder<Color>( //Add <Color> after StreamBuilder
stream: bloc.stateStream,
initialData: Colors.amber,
builder: (context, snapshot) {
return AnimatedContainer(
duration: Duration(milliseconds: 500),
width: 100,
height: 100,
color: snapshot.data,
);
},
),
),