nativescript-vue navigateTo 在 vue 组件之外

Posted

技术标签:

【中文标题】nativescript-vue navigateTo 在 vue 组件之外【英文标题】:nativescript-vue navigateTo outside of vue component 【发布时间】:2020-03-20 04:18:28 【问题描述】:

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

我尝试使用一个函数在我的 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

感谢您的帮助。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于nativescript-vue navigateTo 在 vue 组件之外的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 nativescript-vue 中的 RadDataForm 样式? (Nativescript-Vue)

NativeScript-vue 条码创建

Nativescript-vue graphql 后端?

nativescript-vue 的实现角度插件

使用 ListView 和 nativescript-vue 进行无限滚动

全局组件使用以避免代码重复(Nativescript-Vue)