为啥我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮时崩溃?

Posted

技术标签:

【中文标题】为啥我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮时崩溃?【英文标题】:Why does my Nativescript-vue app crash when using the hardware back button before a modal is rendered?为什么我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮时崩溃? 【发布时间】:2020-10-28 13:59:46 【问题描述】:

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

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

如果我等一下,它就可以正常工作。

TypeError: Cannot read property 'nativeView' of undefined

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

【问题讨论】:

【参考方案1】:

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

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

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方法中添加的监听器以防止崩溃。

【讨论】:

以上是关于为啥我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮时崩溃?的主要内容,如果未能解决你的问题,请参考以下文章

我可以将我的 Web 应用程序 Vuejs 移动到 NativeScript-Vue 吗?

恢复后有时会在 Nativescript-Vue 上显示主屏幕

Nativescript-vue 监视道具

Nativescript-Vue 应用图标推荐的分辨率和格式

NativeScript-Vue - 从外部组件导航

使用应用切换器时 Nativescript-vue 输入和按钮 css 崩溃