2017-09-26 51 views
0

vuejs的新增功能。对属性的异步更改

我有以下脚本(代码缩短)一VUE:

export default { 
    mixins: [asyncStatuses], 
    props: { 
    value: { type: Object } 
    }, 
    data() { 
    return { 
     statuses: [] 
    }; 
    }, 
    computed: { 
     hasStatuses() { 
      return this.statuses && this.statuses.length > 0; 
     } 
    }, 
    beforeMount() { 
    // This is an async call 
    this.getStatuses().then((response) => { 
     this.statuses = response.data.statuses; 
    }); 
    } 
}; 

在我.vue文件,我做这样的事情:

<div v-if="hasStatuses"> 
    <div>Show a list of statuses</div> 
</div> 

的问题是<div>从未表演向上。状态正确加载。我在computed.hasStatuses中放置了一个调试器,但它永远不会运行?

任何人都可以向我解释如何以及为什么会发生这种情况,以及如何解决它?

再次感谢!

+0

我无法重现您的问题。 https://jsfiddle.net/eptwaa9f/如果你'console.log(response.data.statuses)'你得到一个非空数组? – thanksd

回答

2

该代码设置为self.statuses,但未定义self

self.statuses = response.data.statuses 

只需使用this

this.statuses = response.data.statuses 
+0

代码已被正确更新。问题依然存在。 – Sean

+0

查看代码后,修复它,然后由于某种原因必须重新启动所有服务器,它的工作正常。再次感谢! – Sean

+0

@肖恩没问题:) – Bert