开关器不即时更新的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)
}
}