1、uView的form校验,手动赋值某个字段后,页面校验信息未同步更新校验问题。
问题:手动赋值是Number,将其转换成字符串类型,则可以校验通过
this.$set(this.formParamters,'estimateScore',sum.toString())
2、解决uni-app中第二次访问tabbar页面时不会加载数据的问题
原因: tabbar页面是一个webview,而在切换页面时候,webview没有关闭,只是被其他页面覆盖了而已,需要显示时候就把它显示出现,所以页面是不会重新加载数据的。
解决方法: 将相关方法写在onShow()里面
3、uniapp跳转到tabbar页并刷新页面
uni.switchTab({
url:'/pages/Dynamic/main',
success: (res) => {
let page = getCurrentPages().pop();
if (page == undefined || page == null) return;
page.onLoad();
}
})
4、使用depp在小程序中子组件修改第三方ui库uview,样式不生效问题
问题:修改子组件第三方ui库样式,样式不生效
解决:子组件下要和data同级下添加options: {styleIsolation: 'shared' // 解除样式隔离}
5、uni-app 中实现 onLaunch 异步回调后执行 onLoad 最佳实践
解决方案一:(使用async后调用其他接口有问题)
既然在onLaunch中请求是异步的原因导致这个问题,那改成同步的不就行了,这里利用Promise来解决这个问题
解决方案二:
正好项目中用到了uni-simple-router插件,提供了全局前置守卫事件beforeEach
,其本质是代理了所有的生命周期,让生命周期更加可控,这样就可以很好的解决我们面临的问题了。
解决方案三:使用全局变量