2017-12-18 104 views
1

我的数据提取在全局使用时工作正常,但是一旦我坚持单个文件组件不会返回项目。我做错了什么?Vue.js中的数据提取单个文件组件

ladeditems.vue

<template> 
<div> 
    <ul v-for="item in items"> 
    <li> 
     {{item.title}} 
    </li> 
    </ul> 
</div> 
</template> 

<script> 
export default { 
    components: {'tiny-slider': VueTinySlider}, 
    name: 'ladeditems', 
    data: { 
    items: null 
    }, 
    methods: { 
    fetchData: function() { 
     let self = this 
     const myRequest = new Request('https://jsonplaceholder.typicode.com/posts') 

     fetch(myRequest) 
     .then((response) => { return response.json() }) 
     .then((data) => { 
      self.items = data 
      // console.log(self.items) 
     }).catch(error => { console.log(error); }); 
    } 
    }, 

    mounted() { 
    this.fetchData() 
    } 
} 
</script> 
+0

错误在哪里?尝试添加一个catch到你的获取调用 –

回答

1

data声明不正确,应该是这样的:

data: function() { 
    return { 
    items: null 
    } 
} 

此信息是在这里:data。总之它必须是一个返回对象的函数。这应该允许该财产对您的更改产生反应。

另外值得注意的是,fetch未在您提供的代码中声明,所以我认为这是一个全局声明。如果不是,它是一个混合,那么你需要将其范围与this.fetch(...)

0

https://vuejs.org/v2/api/#data

当定义一个组件,数据必须被声明为返回初始数据对象的功能,因为会有使用创建的许多实例相同的定义。如果我们使用普通对象作为数据,那么所有创建的实例将通过引用来共享相同的对象!通过提供数据函数,每次创建新实例时,我们都可以调用它来返回初始数据的全新副本。