4514关注13320浏览
写了一个通用组件用于收集formId,因为一个页面需要一个formId就可以了,所以写了个通用的套在页面外边,页面中原来的逻辑很多,有跳转有弹窗也有单纯的展示。submitHandler 中打印了formId,开发者工具中运行正常,也就是每次点击页面任何地方,包括跳转事件都会打印“the formid is a mock one”说明每次都有触发收集事件,但是在小程序真机中运行时,只有在不跳转的情况下才会打印formid,跳转是不打印的,而且抓包显示不打印时也没有请求相关接口,说明没有触发到收集函数,而且这种不触发还是不稳定的,有的时候会触发有的时候又不会。求问是有什么相关限制,还是说需要特别的处理方式?
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
纸短情长
16人对此回答表示赞同
如果和事件有关系的话,跳转事件用的bindtap,是冒泡事件,submit事件不冒泡,可是form在最外层,显然不会被冒泡事件影响吧,而且就算影响,也应该小程序真机和模拟器都影响,没道理小程序真机和模拟器表现不同吧
展开160回复分享发布于 5年前评论(0)
收起评论
-
Sarah
14人对此回答表示赞同
那不就不能一个页面只套一个了?只能挨个有跳转事件的来套form?这样的话一个页面会产生很多个formid耶,这样会不会有点没必要?
展开140回复分享发布于 5年前评论(0)
收起评论
-
Stella
13人对此回答表示赞同
求解答
展开130回复分享发布于 5年前评论(0)
收起评论
-
末代恋人
10人对此回答表示赞同
还是可以做的,就是比较麻烦一点。你可以通过Object.defineProperties重写wx.navigateTo等所有的跳转类方法,因为navigator标签的跳转也会走这些跳转API方法,所以包装过之后就有了做一些额外事情的机会。
展开100回复分享发布于 5年前评论(0)
收起评论
-
喜怒无常
9人对此回答表示赞同
我大概明白你的意思了,先拿到Id再跳转,但是现在的情况是跳转的情况会很多,有的是标签跳有的是bindtap绑定的api跳,想要抹平他们之间的差异,写一个通用的组件是不是有点不太现实?
展开90回复分享发布于 5年前评论(0)
收起评论
-
林小姐也是lyn
4人对此回答表示赞同
是的,这里需要在submit中阻止跳转才能拿到formId。
展开40回复分享发布于 5年前评论(0)
收起评论
-
那都不是事儿
2人对此回答表示赞同
他的意思是,想要拿到formId就不能让页面跳转走,可能拿formId这个动作需要一点时间吧。你可以试一下把跳转动作改成拿到formId之后再执行,这样你就需要包装navigator组件,然后将跳转url、参数、跳转方式等信息放在event.detail里面,然后在你自定义的form组件里面来执行跳转的动作。
展开20回复分享发布于 5年前评论(0)
收起评论
-
Chavez3
2人对此回答表示赞同
好的,谢谢你的指导,我尝试一下看
展开20回复分享发布于 5年前评论(0)
收起评论