array.some不是我的Laravel Vue Js项目中的函数

array.some不是我的Laravel Vue Js项目中的函数,laravel,vue.js,Laravel,Vue.js,我正在实践laravel&Vue js项目。这里我有一个愿望列表按钮 <button :class="wishlists.some(wishlist => wishlist.product_id === productId) ? activeClass:deactiveClass" v-html="wishlists.some(wishlist => wishlist.product_id === productId) ? activeText

我正在实践laravel&Vue js项目。这里我有一个愿望列表按钮

<button 
:class="wishlists.some(wishlist => wishlist.product_id === productId) ? activeClass:deactiveClass" 
v-html="wishlists.some(wishlist => wishlist.product_id === productId) ? activeText:deactiveText"
@click="wishlistStatus(productId)" >
</button>

这是完美的工作,但这也是抛出2个错误。
[Vue warn]:呈现错误:“TypeError:\u vm.wishlists.some不是函数

TypeError:_vm.wishlists.some不是函数


现在我如何解决这个问题要使用'some'方法,您的'wishlists'变量必须是一个数组

如果在组件初始化时,该变量还不是数组,则应用程序将崩溃

这通常发生在您将变量初始化为null,然后调用服务器获取数据时

data() {
  whislists: null,
  ...
}
有几种方法可以解决此问题:

  • 最简单的方法是将变量初始化为数组
  • 另一种解决方法是等待变量变成数组,然后渲染按钮,可以使用v-if实现这一点
  • 
    
    这可能只是问题发生的原因之一

    其他原因可能是:


    您正在为变量“wishlists”分配的数据不是数组,但您没有意识到它。

    在Vue开发工具中,wishlists是什么样子的?在我的wishlists是类似wishlists的对象之前:{},现在我将此wishlist设置为类似wishlists:[]的数组。现在它工作正常。谢谢
    data() {
      whislists: [],
      ...
    }
    
    <button
      v-if="wishlists && wishlists.length"
      :class="wishlists.some(wishlist => wishlist.product_id === productId) ? 
      activeClass:deactiveClass" 
      v-html="wishlists.some(wishlist => wishlist.product_id === productId) ? 
      activeText:deactiveText"
      @click="wishlistStatus(productId)" >
    </button>