前端VUE记错本

31 篇文章 0 订阅

开关器不即时更新的BUG

情况是这样的:
当我点击pin的切换时他并不会即时的转换。需要等我点击其他按钮时他才跳过去
错误:
当时我写的是这样的

当为false时组件就不渲染了,所以切换无法触发;
解决:
分行写


创建一个复用组件, 使用组件内嵌组件内嵌组件时出现定义的方法不存在,,

组件初始化的时候会初始化他的下一级组件,当点进去的时候继续往下渲染;

而我使用的时候,传参调用的时候他已经初始化了空值,当我调用的时候就会出错,

解决:使用ref调用,在组件内预留一个方法,我们调用他同时带参数;
最好让组件内部通过boolean=》v-if决定要不要渲染。。。我们一切都通过操纵组件内部的方法来完成;
知识储备不够。折中的解决办法
追加:我这里实现的效果是,当组件加载的时候执行一个函数,调用组件里另一个组件的方法查询;这样在第一次二级组件渲染的时候还没渲染里面的方法,所以会调用不到;我们通过在二级组件创建一个按钮,等一切渲染完了、我们通过按钮再去调用下一级的渲染;


子组件自己的方法:

initData(row) {
      // 控制组件本体的展示
      this.changeRoleShow = true
      // 清空角色
      this.currentRole = []
      this.constraintRole = []
      // 初始化角色池
      console.log('初始化角色池')
      console.log(row)
      sysRoleFindAll(this.queryParam).then(response => {
        this.constraintRole = response.items
        if (this.constraintRole === null) {
          this.constraintRole = []
        }
      })

父级组件的调用:

showDnd(row) {
  if (this.changeRoleShow === true) {
    this.changeRoleShow = false
  } else {
    this.$refs['dnd'].initData(row)
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值