首页 > 解决方案 > nativescript-vue navigateTo 在 vue 组件之外

问题描述

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

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

路由.js

import Page from '../components/Page'

const routes = {
    Page
}

export const vue = routes

导航器.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:无法读取未定义的属性“currentPage”

我记得我昨天通过将 navigateTo 的“功能”更改为“默认功能”解决了这个问题。

但这一次它给我带来了一个错误,叫做:

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

当我通过routes.vue.Page

我会很感激任何帮助谢谢。

标签: javascriptnativescript-vue

解决方案


它并不能精确地修复您遇到的错误,但工作正常。

路由器.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
    });
}

组件.vue

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

推荐阅读