首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue警告-不能使用'in‘操作符搜索’[对象数组]‘

Vue警告-不能使用'in‘操作符搜索’[对象数组]‘
EN

Stack Overflow用户
提问于 2017-11-27 07:44:15
回答 4查看 23.5K关注 0票数 2

井,

我试图用vue.js完成购物车的项目,浏览器控制台显示了这个错误:

vue.common.js:576 Vue警告:创建钩子中的错误:"TypeError:无法使用' in‘运算符在产品中搜索'object’“

代码语言:javascript
复制
// App.vue

<template>
  <div class="container">
      <div class="products">
        <div class="clearfix">
          <product v-for="product in products" :key="product"></product>
        </div>
      </div>
      <div class="shopping-cart">
        <shopping-cart></shopping-cart>
      </div>
  </div>
</template>

<script>

import ShoppingCart from './components/ShoppingCart.vue'
import Product from './components/Product.vue'

export default {
  created () {
    // dados mockados
    var dummy = [
      {id: 1, title: 'Name of Product 1', price: 40, image: 'product.png'},
      {id: 2, title: 'Name of Product 2', price: 90, image: 'product.png'},
      {id: 3, title: 'Name of Product 3', price: 10, image: 'product.png'},
      {id: 4, title: 'Name of Product 4', price: 20, image: 'product.png'}
    ];

    this.$set('products', dummy)
  },
  data () {
    return {
      products: []
    }
  },
  components: { Product, ShoppingCart }
}

</script>

我能做什么?

我尝试了很多事情,但还是没有成功。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-11-27 08:02:55

首先,模板中的组件名称是“产品”,而for循环中的关键也是“产品”。或者将组件名更改为适当的名称,例如。

您一定忘了给导入的组件指定名称(为tepmplate指定组件名称)。如果不在模板中使用导入组件的引用名,就不能像这样使用导入的组件。

代码语言:javascript
复制
components: { Product:productName, ShoppingCart: shoppingCart }

通过这种方式,您可以在模板中使用<product-name> </product-name>,然后在for循环中使用product in prodcuts

此外,产品数组不应该以这种方式工作。它应该在电脑钩子里。

代码语言:javascript
复制
computed ={}

或者我建议你直接在data()上签名

票数 4
EN

Stack Overflow用户

发布于 2018-03-05 19:34:33

为了更好地工作,在VUE中使用$set方法

传递'this‘关键字的第一个arg

像这样的事情

代码语言:javascript
复制
this.$set(this,'your_object', value)

请注意,第二个arg必须是字符串。

票数 1
EN

Stack Overflow用户

发布于 2017-11-27 08:07:17

我认为问题在于$set方法,您需要将对象指定为第一个参数,请参见完整的doc 这里

因此,您需要这样做:this.$set(this.products, dummy),这也不会给您在v-for循环中的4种产品。我建议直接在data()中分配产品。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47505988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档