刚学微信小程序,使用到navigator组件实现跳转出现了一个问题就是我点击我设置的button然后用navigator嵌套进去,开始每点击一次button就可以跳转到相应的界面,重复操作四次的时候,怎么点击都没反应了,纠结了好久,初学者不懂。
开始以为是缓存原因,不过我就输入了很少的内容,缓存虽然只有10M,也不可能满,返回前一个页面时,发现刚才的操作数据已经生效了,只是页面没有跳转回去,网上搜了解决方案
【代码】
<navigator url="../index/index" open-type="navigator">
{{item.id}}
<text class="the-text">{{crtTime}}</text>
<button class="the-btnSave" bindtap="btnSave">保存</button>
<button class="the-btnDel" bindtap="btnDel">删除</button>
</navigator>
修改为:
<navigator url="../index/index" open-type="redirect">
{{item.id}}
<text class="the-text">{{crtTime}}</text>
<button class="the-btnSave" bindtap="btnSave">保存</button>
<button class="the-btnDel" bindtap="btnDel">删除</button>
</navigator>
navigator跳转分为两个状态一种是关闭当前页面一种是不关闭当前页面。用redirect属性指定。
>通过这个属性我可以大概猜测我当时点击4次之后无法跳转可能是我点击过多之前的页面并没有关闭导致系统无法执行当前跳转,所以我使用redirect关闭当前界面实现跳转便可以达到目的。
【内容补充】
navigator的open-type属性 可选值 'navigate'、'redirect'、'switchTab',对应于wx.navigateTo、wx.redirectTo、wx.switchTab的功能
open-type="navigate"等价于API的 wx.navigateTo 而wx.navigateTo的url是需要跳转的应用内非 tabBar 的页面的路径
open-type="redirect"等价于API的 wx.redirectTo 而wx.redirectTo的url是需要跳转的应用内非 tabBar 的页面的路径
open-type="switchTab"等价于API的 wx.switchTab而wx.switchTab的url是需要跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
最后一个switchTab事件触发以后 把前面的页面都关闭了
虽然解决了,原理还是不太懂,上面解释来源于: