在我的Vue 2应用程序中,我有一个大对象,它从根组件向下传递到几个子级作为道具。当我更改对象的某些属性时,子组件应更新并重新呈现。在某些情况下,它们会这样做,在其他情况下,它们不会。我需要一些帮助来找出为什么它不起作用。
这是一个子组件,不会更新:
<template>
<div class="upgradeBar">
{{level}}
<div
v-for="lvlNum in maxLevel + 1"
class="level"
v-bind:class="{reached: isLevelReached(lvlNum - 1)}"
></div>
<button
class="btnUpgrade"
@click="onLevelUp()"
v-if="!isLevelReached(maxLevel)"
>
+
</button>
</div>
</template>
<script lang="ts">
import {Component, Prop, Vue} from 'vue-property-decorator';
import Upgradable from "../../../models/Upgradable";
@Component()
export default class UpgradeBar extends Vue {
name: 'UpgradeBar';
@Prop() entity: Upgradable;
get level(): number {
return this.entity.level;
}
get maxLevel(): number {
return this.entity.MAX_LEVEL;
}
onLevelUp() {
this.entity.levelUp();
}
isLevelReached(level: number): Boolean {
return this.entity.level >= level;
} …Run Code Online (Sandbox Code Playgroud)