我做过很多次互相影响的电视节目。
但它似乎不像我想的那样运作。
当用户选项卡“vinput01”和“更改”时,vinput02只在“vinput01函数”下更改。当用户选项卡“vinput02”和更改值时,“vinput02”仅在vinput02函数下更改。
但现在,我的代码触发无限循环。
改变“VIPUT01”影响“VIPUT02”和“VIPUT02”同时影响“VIPUT01”。
这是我的密码。
我怎样才能避免这个问题?是吗?

data () {
  return {
   vinput01: '',
   vinput02: '',
  }
},
watch: {
 vinput01: function(_val) {
 this.vinput02 = _val *1.1
},
 vinput02: function(_val) {
 this.vinput01 = _val / 1.1
}

最佳答案

你需要有一个“真理之源”的属性。你的问题是你有两个价值观在竞争。为此,可以将一个属性设置为主要值,另一个属性设置为带有getter和setter的计算属性。关于这一点的好文章可以在here和优秀的vuejs文档中找到。
示例代码:

data(){
  return {
    vinput01:0,
  }
},
computed: {
  vinput02: {
    get: function(){
      return this.vinput01 * 1.1;
    },
    set: function(_val){
      this.vinput01 = _val / 1.1;
    }
  }
}

关于javascript - 相互影响的Vue js监视函数触发无限循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54745318/

10-10 03:06