首页 > 解决方案 > 为什么我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮会崩溃?

问题描述

我有一个内置于 Nativescript-Vue 的应用程序,其中详细页面以模式显示。

我使用该方法$showModal()打开一个模态,但是当我在呈现模态之前按下 Android 设备上的硬件后退按钮时,应用程序崩溃并且它给了我以下错误。

如果我等一下,它工作得很好。

TypeError: Cannot read property 'nativeView' of undefined

我是否应该覆盖后退功能以在模态完全呈现之前等待?

标签: androidnativescriptnativescript-vue

解决方案


我认为 NativeScript-Vue 可能正在尝试访问不存在的 ref。

如果你想手动覆盖它,你可以在你的模式中添加如下内容:

import * as app from 'tns-core-modules/application'

export default {
  data: {
    ...
    rendered: false
  },
  methods: {
    onBackButtonPress (message) {
      if (!this.rendered) return
      app.android.off(app.AndroidApplication.activityBackPressedEvent, this.onBackButtonPress)
      this.$modal.close(message)
    }
  },
  created () {
    app.android.on(app.AndroidApplication.activityBackPressedEvent, this.onBackButtonPress)
  },
  mounted () {
    this.rendered = true
  }
}

我不确定是否会及时添加在 created 方法中添加的侦听器以防止崩溃。


推荐阅读