Как проверить, находится ли пользователь в сети в laravel vue. js - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь проверить, есть ли пользователь в сети, поэтому я могу показать зеленый кружок, это мой шаблон

<template>
<div>
    <span class="fas fa-circle pull-right text-success" v-if="checkUser"></span>
    <span class="fas fa-circle pull-right text-danger" v-else></span>
</div>
</template>

это мой скрипт с реквизитом

<script>
export default {
    name: "OnlineUser",
    props: ['contact', 'onlineusers'],
    data(){
      return{
      }
    },
    methods:{

    },
    computed:{
        checkUser() {
            return  _.find(this.onlineusers, {id: this.contact});

        },
    },
    mounted() {

    },
    created() {

    }
}
</script>

, когда я проверьте инструмент vue dev, там отображаются все онлайн-пользователи, но я попытался сохранить результат моей функции, чтобы увидеть, что он возвращает, и он всегда возвращает undefined intead из true или 1012 * ложная *

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Похоже, вы используете loda sh, чтобы проверить, существует ли пользователь в массиве onlineusers.

Это не ошибка, это ожидаемое поведение, как и docs скажем, для метода _.find():

Возвращает сопоставленный элемент, иначе не определено.

Я бы порекомендовал использовать метод _.some():

checkUser() {
    return  _.some(this.onlineusers, ['id', this.contact.id});
}

Также как документы говорят:

Возвращает true, если какой-либо элемент проходит проверку предиката, иначе false.

0 голосов
/ 24 апреля 2020

Ну, самый простой способ - определить его так:

 ```<script>
        window.loggedIn = {!! json_encode([
        'signedIn'=>Auth::check(),
    ]) !!};
    <script/>```

Таким образом, у вас будет глобальная переменная с именем "loggedIn", которая даст вам значение true или false, если пользователь подключен к сети или не.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...