Javascript 如果我的不起作用,如何在v中调用函数

Javascript 如果我的不起作用,如何在v中调用函数,javascript,laravel,vue.js,Javascript,Laravel,Vue.js,我有一个vue文件,其中模板编码如下 <template> <div class="pull-right"> <i class="fa fa-circle green" v-if="checkUser()"></i> <i class="fa fa-circle red" v-else></i> </div> </template> 这是onlineuser标签 <onl

我有一个vue文件,其中模板编码如下

<template>
<div class="pull-right">
    <i class="fa fa-circle green" v-if="checkUser()"></i>
    <i class="fa fa-circle red" v-else></i>
</div>
</template>
这是onlineuser标签

   <onlineuser v-bind:user="{{$user}}" v-bind:onlineusers="onlineUsers"></onlineuser>


导出默认值{
道具:['user','onlineusers',],
计算:{
checkUser(){
返回{.find(this.onlineusers,{id:this.user.id});
}
}
}
}
您可以尝试使用上述计算属性。

尝试以下操作:

    <template>
      <div class="pull-right">
      <i class="fa fa-circle green" v-if="online"></i>
      <i class="fa fa-circle red" v-else></i>
    </div>
   </template>

   <script>
    export default {
    props: ['user', 'onlineusers'],
    computed: {
        online (){
           return this.onlineusers.find(user => user.id == this.user.id);
         }
       }
     }
   </script>

导出默认值{
道具:['user','onlineusers',],
计算:{
在线(){
返回this.onlineusers.find(user=>user.id==this.user.id);
}
}
}

您的checkUser正在返回一个布尔值,而不是一个iterable项


您必须返回vue可以循环的内容。

您是否收到一些错误?奇怪的是,没有。我可以找到我想要的对象。除标签外,所有工作正常。请提供
onlineusers
属性的结构,这是onlineusers的短屏幕。只是不在屏幕截图中。对不起,我弄错了。iterable item是什么意思?@BoussadjraBrahim可以循环使用的东西。例如,一个数组如果你指的是一个数组或一个对象,如果它不是空的,那么它将被转换为true。我试着设置布尔值。它不起作用。如果我返回对象,它也不起作用。但是如果我设置为true而不是checkUser(),则效果很好。但是那是硬编码的。哈哈,我今天太累了。。我以为是v-for在控制台中给了我这个错误。onlineusers.find不是一个函数什么是
这个。onlineusers
?它是一个对象数组这里有一个额外的}(braket)。如果我移除它。符合要求,但与之前相同。不要像预期的那样工作。
  if(fromId != 'null'){

        Echo.join('Online')
            .here((users) => {
                this.onlineUsers = users;
            })
            .joining((user) => {
                this.onlineUsers.push(user);
            })
            .leaving((user) => {
                this.onlineUsers = this.onlineUsers.filter((u) => {u != user});
            })
    }
   <onlineuser v-bind:user="{{$user}}" v-bind:onlineusers="onlineUsers"></onlineuser>
<i class="fa fa-circle green" v-if="checkUser"></i>

<script>
export default {
    props: ['user', 'onlineusers'],
    computed: {
      checkUser(){
        return _.find(this.onlineusers ,{id: this.user.id});
      }
    }
    }
}
</script>
    <template>
      <div class="pull-right">
      <i class="fa fa-circle green" v-if="online"></i>
      <i class="fa fa-circle red" v-else></i>
    </div>
   </template>

   <script>
    export default {
    props: ['user', 'onlineusers'],
    computed: {
        online (){
           return this.onlineusers.find(user => user.id == this.user.id);
         }
       }
     }
   </script>