为了账号安全,请及时绑定邮箱和手机立即绑定

【已解决】vue中变量赋值不成功

【已解决】vue中变量赋值不成功

xue5hen 2017-12-27 15:51:46
现象如图所示,原本我是直接通过 switch 对 vm.pageIndex 进行赋值运算的,但是不成功,所以我引入了一个中间变量p以便更好的去观察,结果依然不成功,效果如下:接着,我将这段代码放在一个干净的测试页面中,发现一切正常,但这段代码中间并没有任何其它干扰因素啊,为什么会出现这种情况。干净代码:vm.pageIndex=1; vm.pageCount=10; function test(options){ console.log(vm.pageIndex); switch(options){ case -1: vm.pageIndex=Math.max(--vm.pageIndex,1); break; case 1: vm.pageIndex=Math.min(++vm.pageIndex,vm.pageCount); break; case 2: vm.pageIndex=vm.pageCount; break; default: vm.pageIndex=1; break; } console.log(vm.pageIndex); }补充:if...else if...else也试过了,效果一样,也失败了。但控制台修改变量值没问题。if (options.pageDirec==-1) { vm.pageIndex=Math.max(--vm.pageIndex,1); }else if (options.pageDirec==1) { vm.pageIndex=Math.min(++vm.pageIndex,vm.pageCount); }else if (options.pageDirec==2) { vm.pageIndex=vm.pageCount; }else{ vm.pageIndex=1; }
查看完整描述

2 回答

?
Demorgn

TA贡献1条经验 获得超0个赞

遇上了相同的问题 请问后来是怎么解决的 因为什么呢 

查看完整回答
反对 回复 2018-03-17
  • xue5hen
    xue5hen
    说起来比较惭愧,我记得 pageIndex 貌似是放在 computed 里的,反正是个比较低级的错误,所以后来也没好意思贴出来原因。
  • xue5hen
    xue5hen
    关于“computed中定义的变量不能人为赋值”这一点,我记得当时在官网也找到说法了,但刚才再翻的时候没找到,你可以找找。 我一开始之所以认为可以赋值,是因为我在computed的pageIndex的计算函数中打了断点,但是整个过程中它都没被触发,所以我以为我给它赋值后他没有通过computed再改回去,后来想了想,它应该是用setter、getter这种方式在控制读写,直接赋值根本是无效的。
?
黑羊之墙hxs

TA贡献1条经验 获得超0个赞

换一种写法咯。。或者写  return p =1  试试

查看完整回答
反对 回复 2017-12-27
  • 2 回答
  • 0 关注
  • 13547 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信