nextTick 无法正确工作

registernextTick并不能实现预期的效果。nextTickvalidator.jssubmitHandler之前执行。用的是Vue2.6.3

讨论数量: 5
流浪剑客

=。=兄弟我好像遇到跟你一样的问题了,已经解决了么

5年前 评论

@流浪剑客 我在 问答:注册页面跳转问题 有比较详细的解答了。两个问题本质是一样的。 nextTick 的机制在 vue 的实现有出现过反复,从目前来看,现在这里用到的方法在最新版本的 vue 中都不会支持了。可能这里的验证机制要重新考虑才行。

5年前 评论

参考了你们的建议,好像可以,修改如下 (我用的vue3.37 最新的vue-cli,后续继续看是否还有bug)

// register(e) {
//   this.$nextTick(() => {
//     const target = e.target.type === 'submit' ? e.target : e.target.parentElement
//     if (target.canSubmit) {
//       this.submit()
//     }
//   })
// },

register(e) {
  this.$nextTick(() => {
    setTimeout(() => {
      const target = e.target.type === "submit" ? e.target : e.target.parentElement;
      if (target.canSubmit) {
        this.submit();
      }
    },500);
  });
},
4年前 评论
pardon110

@流浪剑客nextick无关,改一下模板就好了,比如这样,其成因参阅 博客:注册登录要点击两次终极解决方案

<span @click="register">
     <button type="submit" class="btn btn-lg btn-success btn-block">
        <i class="fa fa-btn fa-sign-in"></i>注册
      </button>
 </span>
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!