小编Jar*_*mis的帖子

Vue.js计算属性不更新

我正在使用Vue.js计算属性,但遇到了一个问题:计算方法IS在正确的时间被调用,但计算方法返回的值被忽略!

我的方法

computed: {
    filteredClasses() {
        let classes = this.project.classes
        const ret = classes && classes.map(klass => {
            const klassRet = Object.assign({}, klass)
            klassRet.methods = klass.methods.filter(meth => this.isFiltered(meth, klass))
            return klassRet
        })
        console.log(JSON.stringify(ret))
        return ret
    }
}
Run Code Online (Sandbox Code Playgroud)

console.log语句打印出来的值是正确的,但是当我filteredClasses在模板中使用时,它只使用第一个缓存值并且永远不会更新模板.这是由Vue chrome devtools确认的(filteredClasses在初始缓存后永远不会改变).

谁能给我一些关于为什么会发生这种情况的信息?

Project.vue

<template>
<div>
    <div class="card light-blue white-text">
        <div class="card-content row">
            <div class="col s4 input-field-white inline">
                <input type="text" v-model="filter.name" id="filter-name">
                <label for="filter-name">Name</label>
            </div>
            <div class="col s2 input-field-white inline">
                <input type="text" v-model="filter.status" …
Run Code Online (Sandbox Code Playgroud)

javascript single-page-application vue.js

13
推荐指数
4
解决办法
3万
查看次数