【发布时间】:2019-11-07 19:28:36
【问题描述】:
我想显示一些任务(如待办任务)和任务列表,而不需要在这些组件之间导航。 (Task 和 TaskList 都是组件)。但是我找不到动态加载一个组件或另一个组件的正确方法。可以猜到,当用户点击列表中的某个项目时,他/她会在同一个主要组件中看到详细信息。
在主视图组件中,我做了类似的事情
<template>
<TabView ...>
<GridLayout columns="*" rows="auto, *">
<SegmentedBar row="0" col="0">
<SegmentedBarItem title="Meine Aufträge" />
<SegmentedBarItem title="Auftragspool" />
</SegmentedBar>
<GridLayout row="1">
<component v-for="component in componentsArray"
v-show="component === currentComponent"
:is="component" v-bind:key="component"
@changeComponent="changeValue" />
</GridLayout>
</TabView>
<script>
//...
data() { //...
return {
currentComponent: "ServiceOrderList",
componentsArray: ["ServiceOrderList", "TaskDetails"]
};
},
methods: {
changeValue(payload) {
this.payload = payload
this.currentComponent = "TaskDetails"
}
</script>
// another TabViews
</template>
这个正在工作(当我将静态字符串放入 TaskDetails 时),但我无法将有效负载发送到 TaskDetails,
但这种方法不起作用
<v-template if="currentComponent==='ServiceOrderList'">
<ServiceOrderList/>
</v-template>
<v-template if="currentComponent==='TaskDetails'">
<TaskDetails :data="this.payload"/>
</v-template>
那么我还有什么其他方法可以解决这个问题呢? 谢谢
【问题讨论】:
-
您能分享一个 Playground 示例吗?
标签: nativescript nativescript-vue