我无法从创建函数中的props访问数据。它在方法中工作正常,如下面的代码所示。
它的工作方法如下所示
export default {
props: ['projectId'],
data() {
return {
elements: []
}
},
created() {
axios.get(`api/projects/${this.projectId}/elements`).then(response => {
this.elements = response.data.data
});
},
methods: {
addingElement(element) {
alert(this.projectId);
}
}
}
父模板
<add-project-element :projectId="project.id"></add-project-element>
谢谢
<add-project-element :projectId="project.id"></add-project-element>
必须是
<add-project-element :project-id="project.id"></add-project-element>
HTML属性名称不区分大小写。任何大写字符都将被解释为小写。所以camelCased道具名称需要使用他们的kebab-cased等价物。
你的axios
请求中有一个拼写错误。你的道具是projectId
,但你有project.id
那里...
好的,所以最后我找到了一些东西,我不确定它是否正确,但它的工作正常。
实际上,道具在创建之后呈现,这就是它显示为未定义的原因。所以我设定了一些时间。它起作用了
created() {
setTimeout(() => {
axios.get(`/api/projects/${self.projectId}/elements`)
.then(response => {
this.elements = response.data.data
});
}, 1)
},
感谢大家