模态导航和关闭

Posted

技术标签:

【中文标题】模态导航和关闭【英文标题】:Modal Navigation and close 【发布时间】:2019-09-30 19:08:12 【问题描述】:

我有两种情况

    1234563 /p>

    有没有一种方法可以让您拥有多个模式(一个打开下一个)并在最后一个关闭它们?在 android 上,我只是等待每个模态承诺得到履行,但在 ios 上这不起作用。

这是两种场景的示例https://play.nativescript.org/?template=play-vue&id=OVxmoC&v=2

【问题讨论】:

【参考方案1】:

this.$modal.close() 只能从 modal 组件的根中调用,如果从其他任何嵌套级别调用它,它将被简单地忽略。如果您真的想在导航后关闭模态,我认为您必须将$modal 引用向下传递导航树,可能是通过props。如果这对您来说更容易,您甚至可以考虑使用事件总线/全局服务。

Modal.vue

           this.$navigateTo(Secondary, 
                frame: "modal-frame",
                props: 
                    parentModal: this.$modal
                
            );

Secondary.vue

export default 
    props: ["parentModal"],
    data() 
        return ;
    ,
    methods: 
        onTap: function() 
            if (this.parentModal) this.parentModal.close();
            else this.$modal.close();
        
    
;

Updated Playground

【讨论】:

如果有人像我一样对此感到困惑,$modal 的类型是 Object(如果您必须在 props 中指定类型,如:props: modal: Object, ...

以上是关于模态导航和关闭的主要内容,如果未能解决你的问题,请参考以下文章

使用导航关闭模态视图控制器

如何从 appdelegate 呈现和关闭模态视图?

监听关闭事件反应导航

关闭模态视图控制器

如何导航到另一个页面关闭模式?

如何正确关闭模态呈现的控制器