今天写了一个小程序支付密码的页面,需要用到,显示隐藏,来控制支付弹窗的 显示隐藏,最开始我用的是hidden来控制,但是在写完之后遇到一个问题,就是当你在第一次点击按钮弹出输入密码的弹窗之后,输入支付密码,不支付而是点击使弹窗隐藏,第二级点击让弹窗显示,这个时候密码框输入会出现问题,在pc端测试会出现密码输入失效的问题,在小程序端输入会出现:只输入一次就会把密码框填满的问题。
经过半天的艰苦挣扎,终于找到了问题所在,原因是就出在小程序的hidden属性上,下面重点来了。
小程序的hidden属性和display属性,在你渲染完之后隐藏,不会销毁之前所做的渲染 ,所以虽然让hidden隐藏了,但是,之前输入的密码没有进行销毁,在第二次调出支付弹窗是,就出现了问题。
wx:if则是在把页面隐藏之后,销毁了之前所做的渲染,这样在你第二次调起弹窗时,和初次调起的效果相同。
这问题困扰了半天。终于解决了,文章献给那些像我这样刚入小程序坑的人,希望你在看到这篇文章的时候,能记住这个问题。