array.some不是我的Laravel Vue Js项目中的函数
我正在实践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
<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,
...
}
有几种方法可以解决此问题:
这可能只是问题发生的原因之一
其他原因可能是:
您正在为变量“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>