如何在flutter中从php服务器加载图像?我试过了,但它显示了延迟初始化错误



我想显示我的个人资料图片,它已经保存在我的数据库中,而我已经从数据库中提取了姓名、地址等详细信息,但它显示了延迟初始化的错误,

后期图像_photo;

if (!jsondata["error"]) {
Shared Preferences preferences = await SharedPreferences.getInstance();
//  preferences.setString('user_id', jsondata['uid'] );
controllerName.text = jsondata["user"]["name"];
controllerAddress.text = jsondata["user"]["address"];
controllerContact.text = jsondata["user"]["contact_number"];
setState(() {
_photo = Image.network(jsondata['image']);
});
}
}
Now using here
child: CircleAvatar(
radius: 55,
backgroundColor: Colors.red,
child: _photo != null
? ClipRRect(
borderRadius: BorderRadius.circular(50),
child: _photo,
)
: (_image != null
? ClipRRect(
borderRadius: BorderRadius.circular(50),
child: Image.file(
_image,
width: 100,
height: 100,
fit: BoxFit.fitHeight,
),
)
: Container(
decoration: BoxDecoration(
// color: Colors.grey[200],
borderRadius:
BorderRadius.circular(50)),
width: 100,
height: 100,
child: Icon(
Icons.camera_alt,
// color: Colors.grey[800],
),
)),
),

问题是从共享首选项中获取数据需要一些时间。但是小部件在_photo变量初始化之前就已经被渲染了。您可以通过首先使用占位符图像(如Image.asset('/path_to_local_image');(初始化_photo变量来解决此问题,然后在从共享首选项中获取数据时对其进行更改。

var _photo= Image.asset('/path_to_local_image');
if (!jsondata["error"]) {
Shared Preferences preferences = await SharedPreferences.getInstance();
//  preferences.setString('user_id', jsondata['uid'] );
controllerName.text = jsondata["user"]["name"];
controllerAddress.text = jsondata["user"]["address"];
controllerContact.text = jsondata["user"]["contact_number"];
setState(() {
_photo = Image.network(jsondata['image']);
});
}
}
return CircleAvatar(
radius: 55,
backgroundColor: Colors.red,
child: _photo != null
? ClipRRect(
borderRadius: BorderRadius.circular(50),
child: _photo,
)
: (_image != null
? ClipRRect(
borderRadius: BorderRadius.circular(50),
child: Image.file(
_image,
width: 100,
height: 100,
fit: BoxFit.fitHeight,
),
)
: Container(
decoration: BoxDecoration(
// color: Colors.grey[200],
borderRadius:
BorderRadius.circular(50)),
width: 100,
height: 100,
child: Icon(
Icons.camera_alt,
// color: Colors.grey[800],
),
)),
),
.............
.......

相关内容

最新更新