Vue.js 踩坑分享 涉及v-show以及子传父

本文分享了一个Vue.js开发中遇到的弹窗无法关闭的问题。问题在于v-show绑定的值在父组件和子组件间不同步。通过使用子组件向父组件传递事件的方式解决了这个问题。在子组件中定义了`handleOnclick`方法,触发$emit传递值,父组件通过v-on监听并响应,实现弹窗的开关控制。
摘要由CSDN通过智能技术生成

Vue.js 踩坑分享 涉及v-show以及子传父

遇坑描述:

​ 本来想做一个弹窗效果的,但是遇到一个问题就是,可以打开弹窗,但是关闭不了。

​ 后来通过console方法发现两个值不一致,例如我v-show绑定的值是a,a的初始打印值是false,通过父组件点击之后变成true,这部分没问题;

​ 但是子组件显示(即弹窗),点击关闭按钮,初始打印变成undefined,后面正常,这意味着值并不是同一个值。

​ 通过百度查询想到了值存在级别问题,后用子传父方法解决。

踩坑解决


子组件

<template name="aaa">
	<view class="action" @click="handleOnclick">
		点我
	</view>
</template>
...
...
...
methods: {
			handleOnclick(){
			//childByValue为绑定响应事件名
			//'',为传递值
				this.$emit('childByValue','')
			}
		},

父组件

<!-- 通过v-on监听childByValue,绑定响应函数humanHandler -->
<aaa v-on:childByValue="humanHandler"></aaa>
...
...
...
methods: {
			//响应方法 humanHandler
			humanHandler: function(){
			this.isHumanShow = !this.isHumanShow;
			}
		},

解决参考:https://blog.csdn.net/weixin_41910848/article/details/81673733

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值