v-sphere가 어레이 컨텐츠의 변경을 감지하지 못함(vue js)
나는 지금 이 상황을 바꾸려고 하고 있습니다.id
사용자가 버튼을 클릭한 후 이미지를 표시합니다.처음에id
요소 중 하나는 B0_h여야 하지만 사용자가 버튼을 클릭한 후 배열 값이 다음과 같이 변경됩니다.true
처음에 모든 어레이 값은 다음과 같습니다.false
단, 어레이 내의 요소 값이 참이 되면id
B0_v로 변경해야 합니다.
Vue dev 툴을 사용하여 어레이의 값이 예상대로 변화하고 있음을 알 수 있었습니다.v-bind
이 변경을 검출할 수 없습니다.에서v-bind
관점, 가치B[0]
정지해 있다false
그 결과,id
아직 B0_h 입니다.
템플릿은 다음과 같습니다.
<template>
<div>
<button type="button" id="button0" v-on:click="toggle('B0')"></button>
<img src="../assets/img1.png" alt="A" v-bind:id="[A[0] === true ? 'A0_v' : 'A0_h']" >
<img src="../assets/img2.png" alt="B" v-bind:id="[B[0] === true ? 'B0_v' : 'B0_h']">
</div>
</template>
제 대본은 다음과 같습니다.
<script>
export default {
name: 'Demo',
props: {},
data: function(){
return{
A: [false,false,false,false,false,false,false,false,false],
B: [false,false,false,false,false,false,false,false,false],
playerTurn: true;
}
},
methods:
{
toggle(x)
{
if(x == 'B0' && this.playerTurn)
{
this.B[0] = true;
}
}
}
}
</script>
내가 여기서 뭘 잘못하고 있는지 알아?
이는 어레이 및 개체에서 Vue에 의한 변경 처리 때문입니다.Vue는 당신이 변경한 내용을 추적하지 않을 겁니다.이를 위해 다음과 같은 특별한 방법을 제공합니다.set
변경되어야 하는 배열(또는 개체), 인덱스 및 설정되어야 하는 값의 3가지 인수를 사용합니다.
이 예에서는 다음과 같습니다.
Vue.set(this.B, 0, true);
다음 행 대신 이 행을 사용합니다.
this.B[0] = true;
자세한 내용은 공식 문서를 참조하십시오.다음은 간단한 발췌입니다.
Vue.set ( target, propertyName/index, value )인수:
- {개체 | 어레이} 타겟
- {string | number} 속성 이름/인덱스
- {any} 값
반환값: 설정값.
사용방법:
반응형 개체에 속성을 추가하여 새 속성도 반응형인지 확인하므로 뷰 업데이트를 트리거합니다.Vue가 정상적인 속성 추가(예: this.myObject.newProperty = 'hi')를 감지할 수 없기 때문에 반응형 개체에 새 속성을 추가하려면 이 옵션을 사용해야 합니다.
언급URL : https://stackoverflow.com/questions/58587450/v-bind-isnt-detecting-the-change-in-array-content-vue-js
'programing' 카테고리의 다른 글
경로의 File.separator와 슬래시의 차이 (0) | 2022.07.27 |
---|---|
Vuex mapState가 어레이가 아닌 개체를 반환합니까? (0) | 2022.07.27 |
vue-route-back은 vue-route-back으로 어떻게 해야 하나요? (0) | 2022.07.27 |
V-Data-Table의 Select-All [VUETIFY]에서 비활성 항목 제외 (0) | 2022.07.27 |
Laravel Mix: Node.js 의존관계 갱신 (0) | 2022.07.27 |