【发布时间】:2021-09-14 00:06:02
【问题描述】:
我正在使用 nuxt 构建一个 Web 应用程序。
这里是简化的代码:
pages/index.vue
data() {
return {
item: {name:'', department: '', testField: '',},
}
}
async asyncData() {
const result = call some API
const dataToInitialize = {
name: result.username,
department: result.department,
testField: //want to assign computed value
}
return {item: dataToInitialize}
}
在 asyncData 中,我调用 API 并将值分配给 dataToInitialize。
dataToInitialize 有testField 字段,我想根据username 和department 分配一些计算值。
(例如,“a”如果名称以“a”开头,部门为“管理”..等实际场景中的逻辑更复杂)
我曾尝试使用 computed 属性,但我意识到 asyncData 无法访问计算。
有谁知道如何解决这个问题? 任何帮助将不胜感激!
=======
不确定这是否正确,但我通过在 created 中设置 'testfield' 解决了这个问题。
created() {
this.item.testField = this.someMethod(this.item);
},
【问题讨论】:
-
created应该在asyncData之后调用,它是否按预期工作? -
它按预期工作。我首先使用 asyncData 初始化数据,然后覆盖内部创建的 testField 字段,以便正确显示数据。我会尝试你建议的方法。(使用 fetch)@kissu