Я работаю над приложением в Nativescript- vue. Приложение требует, чтобы пользователь вошел в систему. При запуске приложение проверяет appSettings
, выполнил ли пользователь вход в систему. Если пользователь вошел в систему, пользователь попадает в меню выбора («Домой»). Если пользователь не вошел в систему, приложение загружает форму входа в систему, которая проверяет учетные данные на удаленной БД, а затем направляет пользователя в то же самое меню («Домой»).
В обоих В ситуациях, когда пользователь направляется в один и тот же файл, Home.vue
. Эта страница состоит из 5 или около того кнопок, каждая со значком FontAwesome.
Проблема в том, что приложение отображает или не отображает значки в зависимости от того, как пользователь попадает в меню Home.vue
.
Значки не отображается , когда пользователь при запуске указывает на Home.vue
(переменная appSettings
показывает, что пользователь вошел в систему, поэтому не должен представлять учетные данные). Обратите внимание, что вы можете углубиться в приложение, нажав кнопку, которая приведет вас к другому файлу *.vue
, в котором также используются кнопки со встроенными значками FontAwesome работает .
Значки отображаются правильно, когда пользователь перенаправляется в файл Home.vue
после представления действительных учетных данных имени пользователя / пароля, как на домашней странице, так и в последующих меню в приложении.
MAIN. JS
import Vue from 'nativescript-vue'
// Font Awesome!
import {TNSFontIcon, fonticon} from 'nativescript-fonticon';
TNSFontIcon.debug = true;
TNSFontIcon.paths = {
'fa': './assets/css/fontawesome.min.css',
'far': './assets/css/regular.min.css',
'fas': './assets/css/solid.min.css',
'fab': './assets/css/brands.min.css'
};
TNSFontIcon.loadCss();
Vue.filter('fonticon', fonticon);
import {UserServices} from "./assets/js/UserServices.js"
import Login from "./components/Login.vue";
import Home from "./components/Home.vue"
let user = new UserServices();
new Vue({
render: h => h('Frame', [
h(
(user.getLocalToken()) ? Home : Login
)])
}).$start();
HOME. VUE. (Очень урезано, но все еще демонстрирует заявленное поведение)
<template>
<Page class="page" @loaded="loaded">
<StackLayout>
<Button @tap="tapLogoutButton">
<FormattedString>
<Span
class="fas button-icon" stretch="none" :text="'fa-sign-out-alt' | fonticon"
/>
<Span
text=" Logout"
/>
</FormattedString>
</Button>
</StackLayout>
</Page>
</template>
<script>
import Login from "./Login";
import { UserServices } from '../assets/js/UserServices'
let u = new UserServices();
export default {
methods: {
tapLogoutButton(){
if (u.logout()){
this.$navigateTo(Login, {
clearHistory: true
});
};
},
}
};
</script>
Любое понимание того, почему значки FA будут отображаться на одной странице (при загрузке) в зависимости от того, как пользователь оказался там?