为什么form.pauseValidation阻止表单订阅者进行通知?

问题描述

我遇到一个需要手动暂停并恢复验证的问题。尽管我不希望表单在恢复验证之前进行验证,但我仍然需要表单订阅者将字段值更改通知我。

查看最终表单的代码pauseValidation()只需将validationPaused标志设置为true。

pauseValidation: () => {
  validationPaused = true
},

notifyFormlisteners()中,通知被锁定在!validationPaused后面,以防止表单订阅者在验证暂停时通知我有关字段更改的信息。

let scheduleNotification: boolean = false
const notifyFormlisteners = () => {
  if (notifying) {
    scheduleNotification = true
  } else {
    notifying = true
    callDebug()
    if (!inBatch && !validationPaused) {
      const { lastFormState } = state
      const nextFormState = calculateNextFormState()
      if (nextFormState !== lastFormState) {
        state.lastFormState = nextFormState
        notify(
          state.subscribers,nextFormState,lastFormState,filterFormState
        )
      }
    }
    notifying = false
    if (scheduleNotification) {
      scheduleNotification = false
      notifyFormlisteners()
    }
  }
}

这些功能如此高度耦合是有原因的吗?在保留表单订户的同时,是否有任何暂停验证的解决方法?预先感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...