[youzan/vant]关于dialog的一个需求

2024-05-22 771 views
9

需求原因:现在的公司做的是一款app,外框为app,内部嵌入webview,展示页面。页面使用vantUI库。当用户触发手机的回退键(比如home键)时,app端会调用我提供的js接口,触发我的方法。去后退路由。但是对于弹出的dialog不应该后退路由,仅仅应该关闭dialog。

观察了vant源码。dialog是单例。所以现在投机取巧的从document里面通过class找到了dialog,判断了display是否为none来进行关闭。但是这不是长久的方式个人感觉。官方是否可以提供dialog的实例化并且把实例化的display告知。

就比如在组件里面 可以通过this.$dialog.instance.display来获取打没打开dialog.这个值为布尔类型。

ps:popup也是使用了dialog的模态框。这个组件是否也可以增加

回答

8

直接 Dialog.close 就行

6

问题是 如果Dialog.close 我并不知道是不是打开了弹框 也会同时执行我路由跳转的方法。 现在的需求是如果打开了弹框 就关闭弹框 如果没有打开 就跳转路由 这些会在一个方法里面。我希望有dialog的实例进行判断。

5

不建议直接访问实例,你可以用一个变量保存弹窗是否打开的状态

6

嗯。这样是可以。但是就得每次点击或者是某些事件的时候,都得去写一次。不能提到统一的里面去了。

7

你可以对 Dialog 做一个简单的模块封装哈