props传过来的值赋值给data 不起效,而v-model也监听不到

本文探讨了在Vue应用中使用axios获取数据并存储在shopList数组中,实现购物车全选功能遇到的问题。作者指出,当商品状态通过Array.every()检查全选时,Footer组件的全选框应当同步选中。由于Vue不直接允许修改props的值,作者将props值存储在ischeck中,并使用v-model控制全选框状态。然而,初始加载时,全选状态(v-model绑定的allChecked)并未正确赋值。为解决此问题,作者添加了侦听器监听allChecked变化,但这仅是临时解决方案,页面刷新时allChecked仍为false。文章寻求对这一问题的深入理解,期待社区专家的解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求是这样的:

用vue实现购物车的功能,父组件App保存着axios过来的数据,把数据存到数组shopList中,Footer组件里面有个全选框,如果每个商品状态都被选中(我已经用Arry.every() 把shopList的商品选中状态遍历),则这个全选框就被选中。

 

首先利用props把每个商品的选中状态传给子组件Footer,因为我Footer组件的样式是用的是vant组件库写的,复(全)选框是否选中是用v-model控制

因为不能直接修改props的值嘛 所以我把props传过来的值转存到 ischeck 中

 但是当我打开页面和vue调试工具时,this.allChecked 是没赋值到 ischeck 的 ,这就说明 当商品的状态没有被全部选中时,而全选状态是被选中的。

最后添加了一个侦听(侦听allChecked的变化)解决了问题,但其实没完全解决问题,其实页面一刷新allChecked还是false,只不过我监听了他,然后再进行进一步操作,我就是不知道为什么props的值赋值到 ischeck 上,而 v-model 监听不到(我也不知道什么原因,有知道的大佬麻烦指点一二,谢谢)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向KaiSarH学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值