У меня есть переменная participants для b-form-select и я хочу установить параметр disabled = true если опция выбрала один из двух других окон выбора. Всего у меня есть 3 селектбокса.

Когда я изменяю переменную par , VueJS изменяется на переменную participants . В чем проблема?

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

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,

Ваша проблема из-за использования this.participants для каждой переменной.

Таким образом, вы можете решить свою проблему, просто клонируя это. this.participants как это:

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

Вы можете прочитать больше об этом: здесь и здесь .

Это решит вашу проблему.