道具和模板
Props and Templates
我刚刚创建我的第一个自定义组件,我真的很难掌握基础知识。我的组件:
<template>
<StackLayout>
<Label :text="title" />
<Label :text="slate.description" />
</StackLayout>
</template>
<script>
var slate;
export default {
name: "SlateComponent",
props:
['slate', 'title'],
data() {
return {
slate: slate,
};
},
}
</script>
该组件将定期更新,并占据应用程序主页的大块:
<template>
<Page class="Page" actionBarHidden="true" backgroundSpanUnderStatusBar="true" >
<StackLayout>
<StackLayout row="0">
...
</StackLayout>
<StackLayout row="1">
<SlateComponent :title="title" :slate="slate" />
</StackLayout>
...
</Page>
</template>
<script>
...
import SlateComponent from "./SlateComponent";
var slateTitle;
var title;
var gameSlates;
var currentSlate;
var slate;
data() {
return {
events: events,
title: title,
slate: slate,
};
},
async created() {
this.gameSlates = await getGameSlates();
this.currentSlate = this.gameSlates[2];
this.title = this.currentSlate.description;
console.info("The title is: " + this.title);
this.slate = this.currentSlate;
}
};
结果:无论我做什么,都没有 props 对象传递给组件。
如果我注释掉
该应用程序可以正常编译和运行,记录 currentSlate 或其 属性、description
并显示组件,包括 title
.
但是,当我包含该行时,它爆炸了,并出现错误:slate
未定义。
(我知道
props:
['slate', 'title'],
根据风格指南是不合适的。但我也无法使用首选格式。)
我在这里错过了什么?
在模板之外的任何地方访问道具时,需要this
data() {
return {
slate: slate,
};
}
应该是
data() {
return {
slate: this.slate
};
},
我刚刚创建我的第一个自定义组件,我真的很难掌握基础知识。我的组件:
<template>
<StackLayout>
<Label :text="title" />
<Label :text="slate.description" />
</StackLayout>
</template>
<script>
var slate;
export default {
name: "SlateComponent",
props:
['slate', 'title'],
data() {
return {
slate: slate,
};
},
}
</script>
该组件将定期更新,并占据应用程序主页的大块:
<template>
<Page class="Page" actionBarHidden="true" backgroundSpanUnderStatusBar="true" >
<StackLayout>
<StackLayout row="0">
...
</StackLayout>
<StackLayout row="1">
<SlateComponent :title="title" :slate="slate" />
</StackLayout>
...
</Page>
</template>
<script>
...
import SlateComponent from "./SlateComponent";
var slateTitle;
var title;
var gameSlates;
var currentSlate;
var slate;
data() {
return {
events: events,
title: title,
slate: slate,
};
},
async created() {
this.gameSlates = await getGameSlates();
this.currentSlate = this.gameSlates[2];
this.title = this.currentSlate.description;
console.info("The title is: " + this.title);
this.slate = this.currentSlate;
}
};
结果:无论我做什么,都没有 props 对象传递给组件。
如果我注释掉
该应用程序可以正常编译和运行,记录 currentSlate 或其 属性、description
并显示组件,包括 title
.
但是,当我包含该行时,它爆炸了,并出现错误:slate
未定义。
(我知道
props:
['slate', 'title'],
根据风格指南是不合适的。但我也无法使用首选格式。)
我在这里错过了什么?
在模板之外的任何地方访问道具时,需要this
data() {
return {
slate: slate,
};
}
应该是
data() {
return {
slate: this.slate
};
},