模态导航和关闭

时间:2019-05-13 19:35:09

标签: nativescript nativescript-vue

我有两种情况

  1. 打开模态,并在模态内进行一些导航之后,我需要关闭模态,但是当我在导航的最后一页中始终使用相同的this.$modal.close()调用frame时,模态会没有关闭。

  2. 有没有一种方法可以让您拥有多个模态(一个模态打开下一个模态),最后一个模态将它们全部关闭?在android上,我只是等待每个模式承诺都实现,但是在iOS上,这是行不通的。

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

1 个答案:

答案 0 :(得分:1)

您只能从模态组件的根调用this.$modal.close(),如果从任何其他嵌套级别调用它,它将被忽略。如果您确实要在导航后关闭模式,我想您必须通过$modalprops引用传递到导航树下。如果您更方便的话,甚至可以考虑使用事件总线/全球服务。

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