Nativescript 模式导航和关闭

Nativescript 模式导航和关闭,nativescript,nativescript-vue,Nativescript,Nativescript Vue,我有两种情况 打开一个模态,在模态内部进行一些导航之后,我需要关闭模态,但是当我在导航的最后一页调用this.$modal.close()时,始终使用相同的框架模态不会关闭 有没有一种方法可以让你有多个情态动词(一个打开下一个)并且在最后一个情态动词时将它们全部关闭?在安卓系统上,我只是等待每一个模式承诺的实现,但在iOS上,这是行不通的 这是两种方案的示例您可以调用this.$modal.close()仅构成模态组件的根,如果您从任何其他嵌套级别调用它,它将被忽略。如果您真的想在导航后关闭模式

我有两种情况

  • 打开一个模态,在模态内部进行一些导航之后,我需要关闭模态,但是当我在导航的最后一页调用
    this.$modal.close()
    时,始终使用相同的
    框架
    模态不会关闭

  • 有没有一种方法可以让你有多个情态动词(一个打开下一个)并且在最后一个情态动词时将它们全部关闭?在安卓系统上,我只是等待每一个模式承诺的实现,但在iOS上,这是行不通的


  • 这是两种方案的示例

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

    Modal.vue

               this.$navigateTo(Secondary, {
                    frame: "modal-frame",
                    props: {
                        parentModal: this.$modal
                    }
                });
    
    export default {
        props: ["parentModal"],
        data() {
            return {};
        },
        methods: {
            onTap: function() {
                if (this.parentModal) this.parentModal.close();
                else this.$modal.close();
            }
        }
    };
    
    Secondary.vue

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

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