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 });
}
}
}
您好,我有一个昨天解决的问题,但它又出现了。
我尝试使用一个函数在我的 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 });
}
}
}