Flutter 在颤振中:是否可以使用未来<;布尔>;是否在另一个小部件中用作属性?
我有一个Flutter 在颤振中:是否可以使用未来<;布尔>;是否在另一个小部件中用作属性?,flutter,Flutter,我有一个Card()小部件,它包含一个ListTile()小部件 ListTile()小部件的属性之一是启用的。我想通过使用使用async和await的Future的结果动态设置这个enabled属性的值。这可能吗 这是包含ListTile()的Card()小部件 Card myCard = Card( child: ListTile( title: Text('This is my list tile in a card'), enabled: needsT
Card()
小部件,它包含一个ListTile()
小部件
ListTile()
小部件的属性之一是启用的
。我想通过使用使用async和await的Future
的结果动态设置这个enabled
属性的值。这可能吗
这是包含ListTile()的Card()小部件
Card myCard = Card(
child: ListTile(
title: Text('This is my list tile in a card'),
enabled: needsToBeEnabled(1),
),
);
这是我的未来
Future<bool> cardNeedsToBeEnabled(int index) async {
bool thisWidgetIsRequired = await getAsynchronousData(index);
if (thisWidgetIsRequired == true) {
return true;
} else {
return false;
}
}
Future card needstobeenabled(int-index)异步{
bool thisWidgetIsRequired=等待getAsynchronousData(索引);
如果(thisWidgetIsRequired==true){
返回true;
}否则{
返回false;
}
}
其他尝试
我试着用一个未来的建设者。当我构建一个小部件时,这很有效,但在本例中,我试图设置小部件的属性;不构建小部件本身。您不能这样做,原因有两个:
Future
但bool
StatefullWidget
)FutureBuilder
,但如果您不想重建所有小部件,您可以使用此流程(您的主小部件需要是Statefull):
bool\u enabled
initState()
methodoverride上,您可以启动获取异步数据的调用,并使用then()
扩展方法在调用完成时向小部件提供新状态。
比如:@覆盖
void initState(){
super.initState();
getAsynchronousData(索引)。然后((结果){
如果(结果==真){
_启用=真;
}否则{
_启用=错误;
}
setState((){});
});
}
listile
小部件您不能这样做有两个原因:
Future
但bool
StatefullWidget
)FutureBuilder
,但如果您不想重建所有小部件,您可以使用此流程(您的主小部件需要是Statefull):
bool\u enabled
initState()
methodoverride上,您可以启动获取异步数据的调用,并使用then()
扩展方法在调用完成时向小部件提供新状态。
比如:@覆盖
void initState(){
super.initState();
getAsynchronousData(索引)。然后((结果){
如果(结果==真){
_启用=真;
}否则{
_启用=错误;
}
setState((){});
});
}
listile
小部件