vue表单验证的时候提示 async-validator:‘‘ is not a string

刚开始也一直找async-validator这个包的问题,一位是文本框输入数据类型的问题,

按照网上的各种思路测试了,没有效果。

后来发现是自己的所有reg表达式写在了vuex store ,存到了session storage中,

    window.addEventListener('beforeunload', () => {
      sessionStorage.setItem('start', JSON.stringify("sessionStorage start"))
      sessionStorage.setItem('regTemplate', JSON.stringify(this.$store.state.regTemplate))
      sessionStorage.setItem('user', JSON.stringify(this.$store.state.user))
      // sessionStorage.setItem('store', JSON.stringify(this.$store.state)) //报错JSON.stringify循环引用了
      sessionStorage.setItem('end', JSON.stringify("sessionStorage end"))

      localStorage.setItem("test","test localStorage");

    })

但是,store比较大,在转JSON的时候,出现了JSON循环引用,而浏览器有时候不报错误(不知道为啥),导致没有存下去,而在另外的地方又重新加载了

 // 在页面加载时读取sessionStorage里的状态信息
    if (sessionStorage.getItem('store')) {
      this.$store.replaceState(
        Object.assign(
          {},
          this.$store.state,
          JSON.parse(sessionStorage.getItem('store'))
        )
      )
    }

由于模板在this.$store.state.regTemplate 中,这时候其实所有规则都空了,导致async-validator报类型错误,其实是因为空了。

几种情况:

  1. store转JSON成功了,但是由于reg两侧不能有“”,在从JSON转回reg时,多了“”,无法reg;这又是一个问题,【JSON处理reg内容】

  1. store转JSON失败,那就无法重新加载,程序启动是什么样,就直接用,不会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值