避免在 b-input blur 上将 null 转换为空字符串
Avoid converting null to empty string on b-input blur
我在 Vue JS 2.6.6 中遇到了反应性问题。不确定这是否是一个问题,或者我在这里遗漏了什么。
我正在通过 axios 对 MySQL 数据库中的一个对象进行水化:
resource:Object
id: 123
alt: null
file:"2a72d890d0b96ef9b758784def23faa1.jpg"
type:"jpg"
}
表单正在通过 v-model 处理属性:
<b-input v-model="resource.alt" />
我可以看到,在 blur
事件中,除了没有进行任何更改外,resource.alt
属性 正在从 null
更改为空字符串 ""
resource:Object
id: 123
alt: ""
file:"2a72d890d0b96ef9b758784def23faa1.jpg"
type:"jpg"
}
那么处理这个问题的最佳方法是什么?我不认为从数据库中获取所有 null
字段作为空字符串是一个很好的解决方案。我的意思是 IFNULL(files.alt,'') AS alt
另一方面,由于我通过循环遍历所有记录并将所有空属性设置为空字符串来获取大量记录,因此看起来效率很低。
我需要的是将 null
属性保留为 null
或以某种方式从头开始将所有 null
属性解析为 empty
字符串。
仅供参考,我正在使用 vee-validate,所以我需要验证对象是否已更改 pristine
标志,如果对象有,则设置为 false
被操纵。由于从 null
更改为 ""
,此行为将标志设置为 false
编辑
这越来越奇怪了。我将 resource
传播到组件中的本地数据的方式是单击列表中的一个元素。
data: () => ({
files: [],
resource: {}
})
<div v-for="file in files" :key="file.id"
@click.exact="handleIndividualCheck(file)">
{{ file.file }}
</div>
methods: {
handleIndividualCheck (item) {
this.resource = { ...item }
}
}
我第一次 select 一个项目时, null
属性 被转换为一个空字符串,如解释的那样。
下一次,一切都按预期进行
这实际上是一个 bootstrap-vue 版本 2.19.0 的错误
我已经报告了这个问题,修复将合并到下一个版本中。
Link 发出:https://github.com/bootstrap-vue/bootstrap-vue/issues/6078
我在 Vue JS 2.6.6 中遇到了反应性问题。不确定这是否是一个问题,或者我在这里遗漏了什么。
我正在通过 axios 对 MySQL 数据库中的一个对象进行水化:
resource:Object
id: 123
alt: null
file:"2a72d890d0b96ef9b758784def23faa1.jpg"
type:"jpg"
}
表单正在通过 v-model 处理属性:
<b-input v-model="resource.alt" />
我可以看到,在 blur
事件中,除了没有进行任何更改外,resource.alt
属性 正在从 null
更改为空字符串 ""
resource:Object
id: 123
alt: ""
file:"2a72d890d0b96ef9b758784def23faa1.jpg"
type:"jpg"
}
那么处理这个问题的最佳方法是什么?我不认为从数据库中获取所有 null
字段作为空字符串是一个很好的解决方案。我的意思是 IFNULL(files.alt,'') AS alt
另一方面,由于我通过循环遍历所有记录并将所有空属性设置为空字符串来获取大量记录,因此看起来效率很低。
我需要的是将 null
属性保留为 null
或以某种方式从头开始将所有 null
属性解析为 empty
字符串。
仅供参考,我正在使用 vee-validate,所以我需要验证对象是否已更改 pristine
标志,如果对象有,则设置为 false
被操纵。由于从 null
更改为 ""
false
编辑
这越来越奇怪了。我将 resource
传播到组件中的本地数据的方式是单击列表中的一个元素。
data: () => ({
files: [],
resource: {}
})
<div v-for="file in files" :key="file.id"
@click.exact="handleIndividualCheck(file)">
{{ file.file }}
</div>
methods: {
handleIndividualCheck (item) {
this.resource = { ...item }
}
}
我第一次 select 一个项目时, null
属性 被转换为一个空字符串,如解释的那样。
下一次,一切都按预期进行
这实际上是一个 bootstrap-vue 版本 2.19.0 的错误 我已经报告了这个问题,修复将合并到下一个版本中。
Link 发出:https://github.com/bootstrap-vue/bootstrap-vue/issues/6078