您现在的位置是:网站首页>软件开发>开发终端>uni-appuni-app

页面首次加载时,popup弹出层失效问题

风口下的猪2019-11-11uni-app

简介

 错题症状

项目中,首次进入发布页,要提醒用户不要发布涉及黄色、政治、广告等信息,

通过官方uni-popup弹出层定义

(1)通过:show绑定布尔值为true,弹出层不显示;

(2)通过onLoad()生命周期函数,执行this.$refs.popup.open()仍然弹出层不显示


 错题分析

(1)为什么:show绑定了true不显示

发布页的弹出层是通过组件的方式引入定义的,发布页加载时虽然弹出层通过:show绑定了true,但由于只是加载准备阶段,此时组件只是被加载进来,它并不是模板,还没有再渲染定义样式和为组件开辟绑定值存储的空间。

所以:show即使绑定了true,弹出层也不会显示。

(2)为什么onLoad()生命周期函数中,执行this.$refs.popup.open()仍然弹出层不显示

onLoad 监听页面加载

  • 一个页面只会调用一次,可以在onload中获取打开当前页面所调用的query参数。

onReady 监听页面初次渲染完成

  • 一个页面只会调用一次,代表当前页面已经准备妥当,可以和视图层进行交互,(针对页面的所有数据和事件);
  • 对页面的设置,如动态导航栏设置wx.setNavigationBarTitle()方法,要在onReady方法中,不要出现在onload方法里。

也就是说onLoad()并没有完成页面加载的全部工作,另外$refs的使用强调了ref 需要在dom渲染完成后才会有,在使用的时候确保dom已经渲染完成。

所以,onLoad()生命周期函数中,执行this.$refs.popup.open()仍然弹出层不显示


 错题解决方案

在onReady()生命周期函数中,执行this.$refs.popup.open()即可

很赞哦! (0)

  • 软件开发
  • 素质要求
  • 计算机基础
  • 架构
  • 安全
  • 性能
  • 运维
  • 尾页
  • 数据库
  • 开发终端
  • 语言基础
  • 项目管理
  • 产品设计
  • 系统
  • 工作规范
  • 计算机网络
  • 前端技术栈
  • 数据结构
  • 计算机组成原理
  • 后端技术栈
  • 性能优化
  • 安全设计
  • 常见模块
  • 计算机操作系统
  • 服务器
  • python
  • MySQL
  • thinkphp
  • PHP
  • Java
  • JavaScript
  • Windows
  • Linux
  • 特效
  • indexedDB
  • vue
  • 淘宝联盟
  • Ionic
  • Angular
  • 微信小程序
  • 支付宝小程序
  • uni-app
  • css/sass/less
  • 支付
  • socket
  • 爬虫
  • web性能优化
  • 消息推送
  • CVM
  • sqlite
  • Redis
  • 前端基础
  • 基础
  • element
  • Nginx
  • yii2
  • /ponder/index.php/index/catelist/catelist/cateid/10.html

    相关阅读 (同一栏目)

    << /

    标签云

    站点信息

    • 文章统计:528篇
    • 移动端访问:扫码进入SQ3R