1.Ionic3 启动没问题,编译的时候报错
events.js:136thrower;// Unhandled 'error' event^Error: read ECONNRESET
at _errnoException (util.js:999:13)
at TCP.onread (net.js:629:25)
解决办法,删除node_modules/ws目录,然后在项目目录启动命令行,输入
npm install [email protected]
2.ionic3 懒加载机制问题
Ionic3的懒加载机制会带来一个问题,就是所有的页面在第一次进来没有加载,只有在你点击进入某个页面,它的module才会加载,这个过程会有几秒钟的时间(加载自己module的过程),
在浏览器上测试的时候没有这个问题(可能计算机的处理速度比手机要快),在真机上会给人一种我点击了之后没有反应的感觉,用户体验不好。
这个问题的解决办法就是:把这些需要第一次进来就加载的module在app.module里面import进来。
3.使用@IonicPage后,路由传递的参数在页面消失后获取不到
正常页面使用push('***',{'taskId':this.params.taskId}),
this.params.taskId = this.navParams.get('taskId'); //可以获取到
但是也没刷新或者自动部署的时候,
this.params.taskId = this.navParams.get('taskId'); //undefined
原因,没有配置@IonicPage的segment属性
添加segment: 'taskdetail/:taskId' 即可
4.关于ionic3的生命钩子在NavController中的表现
只说在路由中的push()和pop()的情况
ionViewDidLoad(){
console.log('A')
}
ionViewDidEnter(){
console.log('B')
}
ionViewWillEnter(){
console.log('C')
}
push()
全部都会触发,// A,B,C
pop()
ionViewDidLoad不触发 //B,C
因此如果使用pop()返回页面时需要刷新页面数据,则不能在ionViewDidLoad调用API,
ionViewDidLoad 不会出现渲染问题
ionViewWillEnter 会出现一点点渲染闪屏问题
5 文件上传字节流转换后打包过程报类型不符合
let _file: File = event.target.files[0];
let reader = new FileReader();
reader.readAsDataURL(_file);
reader.onload = (e)=>{
let obj : any = e.target.result;
$('#triggerImg').attr("src", obj);
};
question:Property 'result' does not exist on type 'EventTarget'.
因为readAsDataURL会将图片转换成base64码,再通过FileReader对象的onload方法返回回来
但是TyrScript编译器不知道你正在返回一个什么类型的东西,
e.target默认为EventTarget类型,但是result为string类型,因此会报错。
解决办法: let obj : any = (e.target as any).result;
6.Cannot find module 'typescript' or Cannot find module 'fs-extra'
首先npm i 更新一遍再试试,不行就只能删除node_modules,重新npm i 一遍,再不行就是cli版本的问题了,需要重新安装一遍了
7.Error: The Angular AoT build failed. See the issues above
检查代码
8.IOS防止页面露底
在ionic3下,有时候滑动页面到最顶或者最底的时候,放开手指,然后马上再滑动,就好出现滑动没有效果的情况,有时候还会出现页面渲染的BUG,这其实是IOS的露底问题。
可以度娘搜索"防止微信浏览器下拉出现网址"解决,但是假如页面有ion-refresher标签,是没办法解决的,因为body标签被ionic定位成fixed的了,ion-refresher是基于body的fixed属性实现的