小编Rey*_*cke的帖子

Vue组件属性更改不会触发重新渲染

在我的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)

vue-component vuejs2

6
推荐指数
2
解决办法
7453
查看次数

标签 统计

vue-component ×1

vuejs2 ×1