android - 为什么我的 Nativescript-vue 应用程序在呈现模态之前使用硬件后退按钮会崩溃?
问题描述
我有一个内置于 Nativescript-Vue 的应用程序,其中详细页面以模式显示。
我使用该方法$showModal()
打开一个模态,但是当我在呈现模态之前按下 Android 设备上的硬件后退按钮时,应用程序崩溃并且它给了我以下错误。
如果我等一下,它工作得很好。
TypeError: Cannot read property 'nativeView' of undefined
我是否应该覆盖后退功能以在模态完全呈现之前等待?
解决方案
我认为 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 方法中添加的侦听器以防止崩溃。
推荐阅读
- javascript - 有没有办法通过其窗口 id 将应用程序窗口带到电子前台
- c++ - 将 const char* 分配给 char*
- java - 理解 split 中使用的 ",(?=([^\"]*\"[^\"]*\")*[^\"]*$)" 中的正则表达式
- c# - 未调用 API Http get 方法
- java - Ehcache3 defaultCache-configuration 等效
- python - 如何关闭弹出通知?使用 selenium python 进行自动化测试
- c# - 如何轻松地将高斯滤波器应用于双精度列表/数组
- modelica - Dymola 中的命令手册
- javascript - D3 js - onClick of circle 我想在背景中添加区域
- android - 如何减少/完全防止对 Flutter 应用进行逆向工程的可能性?