如何解决如何通过Vue JS'this.somestate'作为文字'this.somestate'
假设在Vue JS应用中,我有一些状态
data () {
optionA: {
xaxis: { categories: ['DD'] }
}
}
还有使用状态作为参数的方法,如下所示:
modifyOption (optionName,xAxisCategory,dataLabelsEnabled) {
optionName = {
...optionName,...{
xAxis: { categories: xAxisCategory },dataLabels: { enabled: dataLabelsEnabled }
}
}
}
注意optionName
参数,例如,在调用该方法时,它应该是一个状态名称
this.mofifyOption(this.optionA,'DD MMM',true)
我希望它运行为
modifyOption (this.optionA,true) {
this.optionA = {
...this.optionA,...{
xAxis: { categories: 'DD MMM' },dataLabels: { enabled: true }
}
}
}
我不期望this.optionA
的值,而只是文字this.optionA
的值。有办法吗?
解决方法
不,没有。最好和最简单的解决方案是返回新对象:
modifiedOption(option,xAxisCategory,dataLabelsEnabled) {
return {
...option,xAxis: { categories: xAxisCategory },dataLabels: { enabled: dataLabelsEnabled },};
}
称为this.optionA = this.modifiedOption(this.optionA,'DD MMM',true);
另一种选择是将属性名称(字符串)作为参数传递,并使用括号语法访问属性:
modifyOption(name,dataLabelsEnabled) {
this[name] = {
...this[name],};
}
称为this.modifiedOption('optionA',true);
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。