json - 不显示价值
问题描述
将 pid 作为参数传递,用于在 URL 中获取用户的特定数据以获取数据但我无法在应用程序中获取数据,但在控制台中,它显示正确我该怎么办?在下面发布两张图片,一张是控制台的输出,另一张是应用程序的输出
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
class userPage extends StatefulWidget {
int id;
userPage({this.id});
@override
_userPageState createState() => _userPageState();
}
class _userPageState extends State<userPage> {
String person_full_name;
String person_gender;
String person_age;
String person_phone;
String person_address;
String person_pic;
FetchData() async{
var response = await http.get("https://dev.uneva.in/task_721/patient.php?id=${widget.id}");
if(response.statusCode ==200){
var data = json.decode(response.body);
print(data['person_full_name']);
person_full_name = data['person_full_name'];
person_gender = data['person_gender'];
person_age = data['person_age'];
person_phone = data['person_phone'];
person_address = data['person_address'];
person_pic = data['person_pic'];
}
else{
print("Something went wrong");
}
}
@override
void initState(){
FetchData();
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('$person_full_name'),
),
);
}
}
解决方案
如果您只是在进入视图后加载数据,那么您需要在设置变量时使用 setState ,以便它反映在您的视图上:
FetchData() async{
var response = await http.get("https://dev.uneva.in/task_721/patient.php?id=${widget.id}");
if(response.statusCode ==200){
var data = json.decode(response.body);
print(data['person_full_name']);
setState((){
person_full_name = data['person_full_name'];
person_gender = data['person_gender'];
person_age = data['person_age'];
person_phone = data['person_phone'];
person_address = data['person_address'];
person_pic = data['person_pic'];
});
}
else{
print("Something went wrong");
}
}
推荐阅读
- tomcat8 - Tomcat 中针对 HTTP 501 错误的自定义错误页面
- python - 如何在 Python 自定义字典中实现整数类型键的一致散列?
- c# - 从字典中选择文本 - 单个单词与短语 - 例如“大米”与“米酒”
- metrics - Istio egressgateway 不收集标签为“reporter=destination”的指标
- php - 如何使用自定义模块和 PHP 生成文件?
- python - 如何在 Tkinter 中为循环中创建的相同按钮提供唯一名称?
- javascript - 未捕获的类型错误:路由器推送 vueJs 后无法读取未定义的属性“$refs”
- algorithm - rabin-karp 如何在变长分块中选择断点?
- html - 如何将文本排列在相同的高度?
- python - prompt-toolkit 在一列中以 READLINE_LIKE 样式完成