gpt4 book ai didi

vue.js - 动态计算属性名称

转载 作者:行者123 更新时间:2023-12-05 01:16:33 25 4
gpt4 key购买 nike

computed: {

...mapGetters(['getElements']),

element() {
return this.getElements(this.formId, this.sectionId, this.elementId);
},

[this.element.inputName]: {
},

}

抛出错误:Uncaught TypeError: Cannot read property 'element' of undefined

如何动态设置 Prop 名称?

最佳答案

您可以根据这篇文章动态添加计算属性,

Generating computed properties on the fly .

由于属性名称源是嵌套的并且(可能)是异步的,因此您需要一个深度观察器来处理更改。

该属性的使用受到限制,您不能在创建时编译的 SFC 模板上使用它。在方法中使用它时,您可能需要根据调用顺序检查它是否存在。

computed: {
element() {
return this.getElements(...);
},
},
watch: {
element: {
handler: function (newValue) {
if (newValue.inputName) {
this.addProp(['element', 'inputName'], () => { return 'someValue' })
}
},
deep: true
}
},
methods: {
addProp (path, getter) {
// Get property reference or undefined if not (yet) valid
const propName = path.reduce((acc, prop) => acc ? acc[prop] : undefined, this)
if (!propName) { return }

const computedProp = {
get() {
return getter()
}
}
this[propName] = computedProp
},
}

关于vue.js - 动态计算属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53332250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com