如何在natviescript-vue vuex存储操作中使用$ navigateTo?

时间:2019-09-08 15:47:26

标签: vue.js nativescript vuex nativescript-vue

this.$navigateTo在我的组件的方法中可以很好地工作,但是在Vue.$navigateTothis.$navigateTo的突变中都无法工作。我的导航取决于我从api调用获得的结果,如果无法在存储操作内执行导航,那么如何从存储操作中获取一些返回值,以便可以在组件内执行导航?

2 个答案:

答案 0 :(得分:1)

您可以从存储操作中返回一个值。由于动作是异步的,因此您需要处理产生的承诺,做类似

的操作
store.dispatch('actionA').then((target) => {
  // navigate to target
})

此处解释了该概念: https://vuex.vuejs.org/guide/actions.html#composing-actions

答案 1 :(得分:0)

这是我的解决方法:

new Vue({
  store,
  render: h => h('frame', [h(store.state.is_logged_in ? App : Login)]),
  created() {
    this.$store.commit('setNav', t => this.$navigateTo(t));
    if (this.$store.state.is_logged_in) {
      this.$store.dispatch('init');
    }
  },
}).$start();

现在我要做的事情:

logout({commit, state}) {
  console.log('logged out');
  commit('log_out');
  state.nav(Login);
},