我做过很多次互相影响的电视节目。
但它似乎不像我想的那样运作。
当用户选项卡“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/