nativescript-vue navigateTo 在 vue 组件之外

nativescript-vue navigateTo outside of vue component

您好,我有一个昨天解决的问题,但它又出现了。

我尝试使用一个函数在我的 vue 页面之间进行路由。

routes.js

import Page from '../components/Page'

const routes = {
    Page
}

export const vue = routes

Navigator.js

import { topmost } from 'tns-core-modules/ui/frame'

function navigateTo (page) {
  topmost().currentPage.__vuePageRef__.$navigateTo(page)
}

export { navigateTo }

Vue 页面:

import {navigateTo} from "../router/navigator";

  created: function() {
    navigateTo(routes.vue.Page);
  }

但它抛出错误

System.err: TypeError: Cannot read property 'currentPage' of undefined

我记得我昨天通过将navigateTo 'function' 更改为'default function' 解决了这个问题。

但是这次它抛出一个错误叫:

System.err: TypeError: Object(...) is not a function

当我通过 routes.vue.Page

如有任何帮助,我将不胜感激。

它并没有精确地修复您遇到的错误,但目前运行良好。

router.js

import login from "./views/Login";
import home from "./views/Home";

export default {
    login,
    home
}

main.js

import Vue from "nativescript-vue";
import router from "./router";

Vue.prototype.$goTo = function(to, props, params) {
    if (!router[to]) return;

    this.$navigateTo(router[to], {
        props,
        ...params // clearHistory, backstackVisible
    });
}

Component.vue

export default {
    methods: {
        goToLogin() {
            this.$goTo("login");
        },
        goToHome(prop) {
            this.$goTo("home", { prop }, { clearHistory: true });
        }
    }
}