Cathari
@Cathari

Как заставить смениться аватар после загрузки нового без reload'а страницы?

Есть профиль user'a, в котором реализована возможность загрузки аватара.
Также в навигации есть иконка (уменьшенная версия того самого аватара). Не знаю как сделать так, чтобы эта иконка обновлялась сразу после загрузки нового аватара в профиле пользователя.
5f71cc9b435a0747732127.png

Вот таким способом он меняется только после перезагрузки =((

вот так отдаю пропс
<Avatar v-bind:avatar ="'{{ Auth::user()->avatar }}'"></Avatar>


а вот что в компоненте
<template>
    <div class="flex align-content-center" style="padding: 0.4rem">
        <img :src="avatar" style="width:32px; height:32px; border-radius:50%;" alt="avatar">
    </div>
</template>

<script>
    export default {

        props: [
            'avatar'
        ],
    }
</script>
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
Один из способов - подцепить какой-нибудь event bus, после завершения ajax запроса посылать в него событие об этом, ловить его в компоненте с миниатюрой и вызывать перезагрузку изображения (можно добавить к src что-нибудь типа ?randomsring)
Ответ написан
@VegasChickiChicki
Auth::user()->avatar - не понимаю что это? Это laravel? Если да - то зачем вы передаете в динмаический параметр серверный код?

У вас этот параметр должен храниться в stor'e или в data поле. После выполнения запроса на сервер просто изменяете это поле и все, все должно работать.

P.S. О каких event bus'ах или ивентах идет речь, если данные stor'а или data объекта и так реактивны? У автора проблема в том, что он эти данные передает как серверную переменную, насколько я понял.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы