gpt4 book ai didi

dart - 热重载后显示的值但单击后为空

转载 作者:IT王子 更新时间:2023-10-29 06:58:52 25 4
gpt4 key购买 nike

我想从 json 中检索数据,单击(形成另一个文件)后,所有值($tgl、$dokter、$paket 等)都为空,但是当我热重载(在下面的代码中)时,结果在那里并且是正确的。

我的代码有什么问题?

class DetilTreatment extends StatefulWidget{
final String nomtri;
final String jenis;
DetilTreatment(this.nomtri,this.jenis);
@override
State<StatefulWidget> createState() {
return DetilTreatmentState();
}
}

class DetilTreatmentState extends State<DetilTreatment>{
String urldest='json_detail_rawat_dart.php';
String tgl,dokter,paket,keterangan;
List tindakan,terapis;

@override
void initState() {
super.initState();
loadData();
}

void loadData() async {
final response = await http.get(remoteURL + urldest + '?nomtri=${widget.nomtri}');
if (response.statusCode == 200) {
List<dynamic> isi = jsonDecode(response.body);
tgl = isi[0]['tgl'];
dokter = isi[0]['dokter'];
paket = isi[0]['paket'];
keterangan = isi[0]['keterangan'];
} else {
throw Exception('Gagal Ambil Data Perawatan');
}
}

@override
Widget build(BuildContext context) {
return new Scaffold(
backgroundColor: Colors.blue[50],
appBar: new AppBar(
title: const Text('Data Riwayat Perawatan'),
),
body: ListView(
padding: EdgeInsets.all(15.0),
children: <Widget>[
// all results are null, but when hot-reload the results displayed !
Text('Tgl/Jam : $tgl', textAlign: TextAlign.left),
Text('Nama Dokter : $dokter', textAlign: TextAlign.left),
Text('Paket : $paket', textAlign: TextAlign.left),
Text('Treatment : ', textAlign: TextAlign.left),
Text('Keterangan : $keterangan', textAlign: TextAlign.left),
],
)
);
}
}

最佳答案

您需要调用 setState() 来使 Flutter 在状态改变时重新渲染。

  void loadData() async { 
final response = await http.get(remoteURL + urldest + '?nomtri=${widget.nomtri}');
if (response.statusCode == 200) {
List<dynamic> isi = jsonDecode(response.body);

setState(() {
tgl = isi[0]['tgl'];
dokter = isi[0]['dokter'];
paket = isi[0]['paket'];
keterangan = isi[0]['keterangan'];
});
} else {
throw Exception('Gagal Ambil Data Perawatan');
}
}

关于dart - 热重载后显示的值但单击后为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54285831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com