【发布时间】:2021-07-17 02:28:17
【问题描述】:
我有 2 个组件(Q1 和 RepConfig)。我正在尝试在 RepConfig 中导入 Q1 组件,以便我可以一遍又一遍地使用它。 Q1 组件指向一个带有简单数组的 Vue 存储 (dscpValues.js):
export default {
namespaced: true,
state: {
dscpData: [
{ id: 'cs0', value: 'CS0' },
{ id: 'cs1', value: 'CS1' },
{ id: 'cs2', value: 'CS2' },
{ id: 'cs3', value: 'CS3' },
{ id: 'cs4', value: 'CS4' },
{ id: 'cs5', value: 'CS5' },
{ id: 'cs6', value: 'CS6' },
{ id: 'cs7', value: 'CS7' }
]
}
};
Q1 组件:
<template>
<div>
<ul v-for="(option, index) in dscpValues.dscpData" :key="index">
<li>
<input type="checkbox" class="inputMarginRight" :id="option.id" :value="option.value" v-model="dscpChoiceQ1" />
<label for="id">{{ option.value }}</label>
</li>
</ul>
</div>
</template>
<script>
import { mapState } from 'vuex';
import { ref, computed } from '@vue/composition-api';
export default {
computed: {
...mapState(['dscpValues'])
},
setup() {
const dscpChoiceQ1 = ref([]);
const dscpValuesQ1 = computed({
get: () => {
const v = dscpChoiceQ1.value;
return v.join(' ');
},
set: (newval) => {
dscpChoiceQ1.value = newval;
}
});
return {
dscpChoiceQ1,
dscpValuesQ1
};
}
};
</script>
RepConfig 组件:
<template>
<div>
<queue-one></queue-one>
</div>
<span>{{ dscpValuesQ1 }}</span>
</template>
<script>
import QueueOne from './QueueNumber/Q1';
export default {
components: {
QueueOne
}
}
</script>
我得到“方法或属性 dscpValuesQ1 未在实例上定义,但在渲染期间被引用”。我做错了什么?
【问题讨论】:
-
在
<span>{{ dscpValuesQ1 }}</span>中dscpValuesQ1是undefined在RepConfig Component中 -
是的,我如何指向导入组件的
dscpValuesQ1? -
您可以使用
scoped-slot将数据从Child 传递给Parent。
标签: vue.js