1
flutter中获取api所使用的第三方包为 dio包,,dio包返回的数据为Response类型的数据,这些数据不能和一般的json格式的数据一样解析,,得使用val.data['data']['code']
方式来解析
2 、 setState() called after dispose()
原因
上面英文大致意思是:在 Flutter 构件树被销毁后仍然执行了 setState 方法改变页面状态。
实际使用报错场景为:三个 tab,默认展示第一个 tab,点第三个 tab 时报的错。个人认为是 bottomNavigationBar 的 bug,点击第三个 tab,第二个 tab 的生命周期函数 initState 也执行了,这是不符合要求的。
解决
// mounted 为 true 表示当前页面挂在到构件树中,为 false 时未挂载当前页面
if (!mounted) {
return;
}
setState(() {
// xxxx
})
3、时间处理插件
timeago
用法:
- import ‘package:timeago/timeago.dart’ as timeago;
- ${timeago.format(DateTime.parse(detail[‘pubdata’]))}
4、导入本地图片资源
一定要注意pubspec.yaml中的空格缩进问题,导入图片还是报错的话,重新启动项目即可
flutter:
uses-material-design: true
# To add assets to your application, add an assets section, like this:
assets:
- images/a.jpg
- images/b.jpg
- images/c.jpg
5、上传文件资源(图片)到服务器端
使用的是第三方的库dio