首页 > 解决方案 > VueJS - 当我更改 const 变量时数据会发生变化

问题描述

我有一个participants变量,如果选项选择了其他两个选择框之一,b-form-select我想设置disabled = true为选项。我总共有 3 个选择框。

当我更改par变量时,VueJS 更改为participants变量。有什么问题?

acceptorsOptions(item){
    let par = this.participants;
    return par.map(participant => {
        let refusers = item.refusers.filter(refuser => refuser === participant.value);
        let abstentions = item.abstentions.filter(abstention => abstention === participant.value);
        if( refusers.length > 0 || abstentions.length > 0 )
            participant.disabled = true;
        return participant;
    });
},
refusersOptions(item){
    let par = this.participants;
    return par.map(participant => {
        let acceptors = item.acceptors.filter(acceptor => acceptor === participant.value);
        let abstentions = item.abstentions.filter(abstention => abstention === participant.value);
        if( acceptors.length > 0 || abstentions.length > 0 )
            participant.disabled = true;
        return participant;
    });
},
abstentionsOptions(item){
    let par = this.participants;
    return par.map(participant => {
        let refusers = item.refusers.filter(refuser => refuser === participant.value);
        let acceptors = item.acceptors.filter(acceptor => acceptor === participant.value);
        if( refusers.length > 0 || acceptors.length > 0 )
            participant.disabled = true;
        return participant;
    });
},

标签: javascript

解决方案


您的问题是因为使用this.participants了每个变量。

所以你可以通过this.participants像这样克隆来解决你的问题:

let par = JSON.parse(JSON.stringify(this.participants));

您可以阅读更多相关信息:此处此处

这将解决你的问题。


推荐阅读