Vue: обновить значение в data () из импорта - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть файл с именем Authenticator.coffee

...
# User
user =
    id: '123'
export { user }


# Auth change
auth = firebase.auth()
auth.onAuthStateChanged (u) => 
    console.log('Auth state changed ?', u.uid)
    user.id = u.uid

... и в Page.vue Я хотел бы отобразить id:

...
{{ uid }}
...


<script>
    import { user } from '../providers/Authenticator.coffee';
    export default {
        data() {
            return {            
                uid: user.id
            }
        }
    }
</script>

Исходныйзначение отображается, но изменения не являются .Изменения приходят, я вижу сообщение «Состояние проверки изменено», регистрируемое с помощью id.

Изменения в импортированных значениях не будут отражены в data()?
Как я могу сделать это иначе?

Дополнительно: Могу ли я просто не делать {{ user.id }} в template, а script состоит только из import?

1 Ответ

0 голосов
/ 27 сентября 2019

Поскольку uid , скорее всего, является строкой, она копируется и не передается по ссылке.Чтобы аутентификация обновляла значение в компоненте, передайте сам пользовательский объект, чтобы один и тот же объект был общим для обоих файлов.

...