在我的 main.dart 我有 StatefulWidget 和類擴展狀態和函式來寫入和讀取字串到本地檔案:
Future<void> _writeDataToFile(favs) async {
final _dirPath = await _getDirPath();
final _myFile = File('$_dirPath/fav.txt');
await _myFile.writeAsString("||${_myVariable}||");
}
Future<void> _readData() async {
final dirPath = await _getDirPath();
final myFile = File('$dirPath/fav.txt');
final data = await myFile.readAsString(encoding: utf8);
setState(() {
_content = data;
});
}
我從分離的檔案中運行小部件:
itemBuilder: (context, index) => allRadioList(articles[index], context, _content),
如何使用 allRadioList 小部件的狀態更改運行 _readData()。
這是我的 allRadioList(articles[index], context, _content) 代碼:
Widget allRadioList(Article article, BuildContext context, String contentt) {
return Card(
child: ListTile(
title: Text(article.title),
subtitle: Text(contentt),
leading: CircleAvatar(backgroundImage: NetworkImage("https://image.tmdb.org/t/p/w300/${article.urlToImage}")),
trailing: IconButton(
icon: contentt.contains(article.id.toString()) ? Icon(Icons.star_border_outlined, color: Colors.yellow) : Icon(Icons.star_border_outlined, color: Colors.white),
tooltip: 'My Tootltip',
onPressed: () {
_writeDataToFile(article.id.toString());
_readData();
},
),
));
}
uj5u.com熱心網友回復:
函式是物件,因此您可以將它們作為函式引數傳遞并在函式中呼叫它
// (){} is a anonymous function (with no name)
itemBuilder: (context, index) => allRadioList(articles[index], context, _content,onPressed: (){
_writeDataToFile(articles[index].id.toString());
_readData();
}),
和
Widget allRadioList(Article article, BuildContext context, String contentt,{Funtion onPressed}) {
return Card(
child: ListTile(
title: Text(article.title),
subtitle: Text(contentt),
leading: CircleAvatar(backgroundImage: NetworkImage("https://image.tmdb.org/t/p/w300/${article.urlToImage}")),
trailing: IconButton(
icon: contentt.contains(article.id.toString()) ? Icon(Icons.star_border_outlined, color: Colors.yellow) : Icon(Icons.star_border_outlined, color: Colors.white),
tooltip: 'My Tootltip',
onPressed: onPressed,
),
));
}
uj5u.com熱心網友回復:
您是否嘗試將 onPressed 函式設為 async 并使用 await 呼叫這些函式?喜歡;
onPressed: () async {
await _writeDataToFile(article.id.toString());
await _readData();
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449980.html
下一篇:系統(awk)命令另存為變數錯誤
