Навигация по NueScript Vue FrameНе навигация - PullRequest
0 голосов
/ 15 ноября 2018

[править] -> Playground Link

Я использую NativeScript и Vue для создания приложения.После загрузки я хочу показать страницу входа или перейти в другое место, если пользователь уже вошел в систему. Моя страница загружается, но не переходит на страницу входа.Это выполняется в эмуляторе IOS.

<template>
    <Page>
        <RadSideDrawer ref="drawer" showOverNavigation="true">
            <StackLayout ~drawerContent backgroundColor="#ffffff">
                <Label class="drawer-header" text="Drawer"/>

                <Label class="drawer-item" text="Static 1"/>
                <Label class="drawer-item" text="Static 2"/>
                <Label class="drawer-item" text="Static 3"/>
            </StackLayout>
            <Frame ~mainContent> 
                <Page> <!-- test to see if mainContent navigates -->
                    <TextField class="input" hint="Email" keyboardType="email" autocorrect="false" autocapitalizationType="none" v-model="user.email"
                     returnKeyType="next" fontSize="18" />
               </Page>
            </Frame>
        </RadSideDrawer>
    </Page>
</template>

<script>
import homePage from './HomePage'
import loginPage from './LoginPage'

export default {
    data() {
        return {
            isLoggingIn: true,
            user: {
                email: "foo@foo.com",
                password: "foo",
                confirmPassword: "foo"
            }
        };
    },
    mounted() {
        this.user.email = "test@example.com", <!-- Change email to check mounted is called.  It is! -->
        this.$navigateTo(loginPage, { frame: "mainContent" } )
    }
};
</script>

Я не могу понять, что я делаю неправильно, и не могу работать из источника.Любая помощь / предложения будут с благодарностью.

1 Ответ

0 голосов
/ 16 ноября 2018

Вы не установили идентификатор для Frame внутри RadSideDrawer.

Для того, чтобы ваш this.$navigateTo код работал, объявление фрейма должно быть

...
<Frame id="mainContent" ~mainContent> 
...

Edit:

Я обновил образец игровой площадки .

  • Page может быть только ребенком Frame. Поэтому мне пришлось обновить ваш LoginPage.vue или HomePage.vue, чтобы сохранить Page.
  • Если я не ошибаюсь, RadSideDrawer внутренне перезаписывает ссылку на mainContent (хотя и не уверен), поэтому id здесь работает лучше.
  • Когда компонент смонтирован, это не значит, что все компоненты внутри смонтированы тоже. Поэтому мне пришлось добавить тайм-аут. Я не уверен, почему вы действительно хотите перемещаться после загрузки страницы, вместо этого вы можете встроить компонент входа / домашней страницы в Frame как страницу по умолчанию.
...