小程序采坑(Taro)
1.工具问题:正常的Taro的cli工具执行完成npm run dev:weapp会一直处于监听状态,VSCode文件改动后,Taro-cli工具会自动监听到并且自动编译文件,小程序的开发工具会自动重新编译。但是有些时候在VSCode保存了文件,Taro-cli并没有编译代码,导致你在小程序里面重新编译后看不到想要的效果,此时需要注意以下几点:
(1)Taro-cli编译是否有报错导致编译失败
(2)VSCode工具保存是否有成功
(3)小程序开发工具里面清缓存的操作
(4)有时候VSCode的确保存成功了(ctrl+s)但是,Taro-cli并没有监听成功,导致编译的还是老的问题,此时建议你关闭Taro-cli同时关闭VSCode(保存)重新运行即可
2.真机调试问题:
用户在扫码安装体验版本的时候,可能出现与模拟器不一样的结果,建议用户清理手机的缓存之后重新扫码安装。
3.Taro语法的一些坑:
(1)子组件向父组件onRefreshLoginBtn={this.refreshLoginBtn.bind(this)} 传递参数等,记住父组件的方法一定要是on开头(有些情况下on开头也有问题,如果操作1后还是无法定位到,建议on方法名更改一下,可能是Taro的bug)。https://nervjs.github.io/taro/docs/event.html
(2)Refs引用,千万不要过渡使用(最好建议不要使用),父组件直接调用子组件的方法。在同一父组件中,同时对多个子组件ref操作,编译没有问题,但是运行会直接报错。
(3)自定义的组件作为子组件被父组件调用,直接在父组件中对子组件的hidden属性操作不起作用,需要在子组件内部进行hidden操作。
(4)在组件的constructor 生命周期里调用缓存里面的内容getStorageSync 然后设置title会出现运行时错误,建议此种情况在componentWillMount 生命周期调用设置。
(5)视图for循环render的操作,map方法后的视图需要设置key,不设置会报警告。
(6)setState的数据量不易过大,微信存在一定的限制,超过setState最大限制会导致数据后续的数据无法setState操作。