598 Star 8.1K Fork 2.6K

小诺 / Snowy

 / 详情

自动生成的代码在edit下会将null转成"null"

已完成
创建于  
2021-06-08 19:56

edit.vue里的提交部分的代码如下

handleSubmit() {
        const {form: {validateFields}} = this
        this.confirmLoading = true
        validateFields((errors, values) => {
          if (!errors) {
            for (const key in values) {
              if (typeof (values[key]) === 'object') {
                values[key] = JSON.stringify(values[key])
              }
            }
            iotProductPropertyEdit(values).then((res) => {
              if (res.success) {
                this.$message.success('编辑成功')
                this.confirmLoading = false
                this.$emit('ok', values)
                this.handleCancel()
              } else {
                this.$message.error('编辑失败')//  + res.message
              }
            }).finally((res) => {
              this.confirmLoading = false
            })
          } else {
            this.confirmLoading = false
          }
        })
      },

其中

if (typeof (values[key]) === 'object') {
                values[key] = JSON.stringify(values[key])
              }

当数据为 null 时,这段代码会将 null 转变成 "null"

建议添加 null 判断,比如:

if (values[key] && (typeof (values[key]) === 'object')) {
  ...
}

评论 (3)

Sglee 创建了任务
Sglee 关联仓库设置为小诺/Snowy
展开全部操作日志

复现步骤

1)使用代码生成器生成代码,并重启服务
2)点击添加记录的按钮弹出表单,并添加一条记录,注意 允许为空的字段不要填写任何值
3)点击刚才添加的那条记录的编辑按钮,打开编辑框,直接点击保存
4)此时,原本数据库里为null的记录此时变成了"null"

就是 数据库里的 null 值拿到前端之后,变成了"null"再存入到了数据库中

发生这一过程的代码就是

if (typeof (values[key]) === 'object') {
    values[key] = JSON.stringify(values[key])
}

因为JSON.stringify(null) 的结果是 "null"

好的收到,我这边复现下

小诺 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1980003 xiaonuobase 1614682939 718189 shaoguanlee 1578931333
Java
1
https://gitee.com/xiaonuobase/snowy.git
git@gitee.com:xiaonuobase/snowy.git
xiaonuobase
snowy
Snowy

搜索帮助