Nativescript Vue борется за навигацию

Я недавно работаю с NativeScript и не понимаю, как перемещаться по страницам / представлениям. К сожалению, похоже, что vue-router все еще не поддерживается, поэтому я смотрю на использование ручной маршрутизации. Тем не менее, у меня есть несколько компонентов vue в app\components, и я не хочу помещать их все в одно значение, как показано в примере.

У меня есть это в моем первом просмотре страницы:

<script>
import pageB from "./PageB";

export default {
    methods: {
        onButtonTap() {
            //console.log("Page B Button was pressed");
            this.$navigateTo(pageB);
        }
    },
    created() {},

    data() {
        return {};
    },
    mounted() {}
};
</script>

но когда я нажимаю кнопку, я получаю сообщение:

[iPhone 8+]: The Preview app has terminated unexpectedly. Please run it again to get a detailed crash report. [iPhone 8+]: '{NSVue (Vue:
2.5.17 | NSVue: 2.0.0)} -> CreateElement(nativelabel)' 2018-10-28 13:54:15.823 nsplaydev[1294:331774] -[TNSLabel useLayoutToLayoutNavigationTransitions]: unrecognized selector sent to instance 0x10a909f00 2018-10-28 13:54:15.826 nsplaydev[1294:331774] PlayLiveSync: Uncaught Exception 2018-10-28 13:54:15.827 nsplaydev[1294:331774] PlayLiveSync: Sending crash report 2018-10-28 13:54:19.831 nsplaydev[1294:331774] *** JavaScript call stack: ( 0 pushViewControllerAnimated@[native code] 1 pushViewControllerAnimated@file:///app/tns_modules/tns-core-modules/ui/frame/frame.js:343:61 2
_navigateCore@file:///app/tns_modules/tns-core-modules/ui/frame/frame.js:116:56 3 performNavigation@file:///app/tns_modules/tns-core-modules/ui/frame/frame-common.js:235:27 4
_processNextNavigationEntry@file:///app/tns_modules/tns-core-modules/ui/frame/frame-common.js:227:39 5 navigate@file:///app/tns_modules/tns-core-modules/ui/frame/frame-common.js:131:41 6 navigate@file:///app/tns_modules/nativescript-vue/dist/index.js:6494:24 7 navigate@[native code] 8 @file:///app/tns_modules/nativescript-vue/dist/index.js:13221:26 9 initializePromise@:1:11 10 Promise@[native code] 11 $navigateTo@file:///app/tns_modules/nativescript-vue/dist/index.js:13198:25 12 onButtonTap@file:///app/components/PageB.js:20:29 13 onButtonTap@[native code]
    2018-10-28 13:54:19.831 nsplaydev[1294:331774] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[TNSLabel useLayoutToLayoutNavigationTransitions]: unrecognized selector sent to instance 0x10a909f00'

*** First throw call stack:
(0x226727ef8 ....)
libc++abi.dylib: terminating with uncaught exception of type NSException
2018-10-28 13:54:19.832 nsplaydev[1294:331774] PlayLiveSync: Uncaught Exception

Я заметил, что ошибка ссылается на нужную страницу как javascript: PageB.js даже думал, что ее не существует. Означает ли это, что маршрутизация не может работать здесь с компонентами vue?

Если кто-то может указать мне на пример с несколькими vue.file для NativeScript, возможно, это поможет мне разобраться в этом.

2 ответа

Решение

Навигация, кажется, работает, как ожидалось, проверьте этот образец детской площадки.

Ваш код выглядит хорошо для меня. Не могли бы вы опубликовать ссылку на NativeScript Playground, чтобы мы могли посмотреть?

Используемый const pageB = require("./PageB").default;

вместо import pageB from "./PageB";

Когда я впервые познакомился с навигацией NS, я не понял, что вся навигация происходит внутри элемента. Не уверен, что это ваша проблема, но, возможно, быстро проверьте. Вот простой пример одного кадра:

<template>
  <Frame>
    <PageA />
  </Frame>

а затем перейдите внутри страницы A на страницу B, как показано в вашем примере.

Другие вопросы по тегам