Saya mendapatkan perilaku aneh saat mencoba menerapkan kondisi untuk gaya item di Vuejs.
Saya telah melihat S.O. posting tentang cara mengimplementasikan ternary, melalui string yang diinterpolasi atau objek gaya yang dihitung. Saya sudah mencoba keduanya tetapi tidak ada yang berfungsi dengan baik.
Mengingat div ini:
<div
:class="{'radar__container':true,'inactive':inactive}"
:style= "[inactive ? {getStyleRadarContainerInactive} : {getStyleRadarContainer}]"
>
Saya akan menerapkan gaya ini:
computed: {
getStyleRadarContainer: function(){
let styleRadarContainer = {
left: this.radarItem.posX*100 + '%',
top: this.radarItem.posY*100 + '%',
transform: 'translate(-50%,-50%) scale(' + this.radarItem.scale + ')',
opacity: this.radarItem.opacity,
}
return styleRadarContainer;
},
getStyleRadarContainerInactive: function(){
let styleRadarContainerInactive= {
left: this.radarItem.posX*100 + '%',
top: this.radarItem.posY*100 + '%',
transform: 'translate(-50%,-50%) scale(0)',
opacity: this.radarItem.opacity,
}
return styleRadarContainerInactive;
},
}
Ini akan membuat masing-masing item ini diperkecil (karena skala(0) di properti opacity), tetapi atribut style tidak dirender sama sekali. Saya juga mencoba ternary inline pada style prop (karena skala itu adalah satu-satunya hal yang berubah di antara dua properti:
transform: 'translate(-50%,-50%) ' + inactive ? 'scale(' + radarItem.scale + ')' : 'scale(0)',
Apa yang saya lewatkan?