vue3 渲染函数怎么直接当做组件使用
export function useNestComponents(cmps: INestCmp[]) {
const createCmp = (index: number): VNode => {
if (index === cmps.length - 1) {
return h(cmps[index].component, cmps[index].props || null);
} else {
return h(cmps[index].component, cmps[index].props || null, createCmp(index + 1))
}
}
return createCmp( 0);
}
<script lang="ts" setup>
const AppProvider = useNestComponents([
{
component: NConfigProvider
},
{
component: NNotificationProvider,
},
{
component: NMessageProvider
},
])
</script>
<template>
<AppProvider>3123123</AppProvider>
</template>
AppProvider 应当渲染3个组件出来的, 但是只渲染了一个出来。
如果 AppProvider 用函数式组件写, 3个组件都可以渲染出来。 但是 AppProvider 里面的内容久渲染不出来
import { useNestComponents } from './hooks/component';
const AppProvider = useNestComponents([
{
component: NConfigProvider
},
{
component: NNotificationProvider,
},
{
component: NMessageProvider
},
])
export default {
setup() {
return () => AppProvider
}
}
试试这样
<script lang="ts" setup>
const AppProvider = () => useNestComponents([
{
component: NConfigProvider
},
{
component: NNotificationProvider,
},
{
component: NMessageProvider
},
])
</script>
<template>
<AppProvider>3123123</AppProvider>
</template>
export function useNestComponents(cmps: INestCmp[]) {
const nestComponent = (props, ctx) => {
const createCmp = (index: number): VNode => {
if (index === cmps.length - 1) {
return h(cmps[index].component, cmps[index].props || null, ctx.slots.default && ctx.slots.default()); // Directly return VNode here
} else {
return h(cmps[index].component, cmps[index].props || null, createCmp(index + 1));
}
}
const vnodes = createCmp(0);
return h('div', props, vnodes);
}
return nestComponent;
}
在最后一个组件里面操作插槽, 就能渲染了。另外 h 函数的第一个传参不能是vnode。 所以会而外新增一个div标签
请问下为什么renderDom能正常渲染renderComDom却渲染不出来?
我有一个组件类,我正在使用react-redux将redux存储连接到该组件类,但是当我尝试将该组件传递到connect函数时,出现了一个错误。 以下是我正在使用的每个接口(redux发出的调度除外): IFileItemProps:组件将使用的所有类型 IFilePassedProps:这些是从父组件传递到组件的道具,所以我没有看到呈现的组件元素的键入问题。 IFileItemReduxStat
AntvX6使用Vue渲染Label 使用html是可以渲染这个label
原先的参数 成品尺寸:100.00_100.00_100.00;展开尺寸:415.00_330.00;印刷:双面印刷;正面印刷颜色:多色_CMYK;反面印刷颜色:多色_CMYK;表面处理:哑胶;背面处理:无;预折:否;正面专色:4,1,2,3,4;反面专色:4,1,2,3,4;1;粘合:自动粘1处;纸张材质:单铜纸_350;包装服务:盒子扎皮筋;外箱套蛇皮袋:否; 修改后的参数 成品尺寸:100.
本文向大家介绍怎样有条件地渲染组件?相关面试题,主要包含被问及怎样有条件地渲染组件?时的应答技巧和注意事项,需要的朋友参考一下 or
嗨,我是新来的反应本机和尝试渲染组件调用一个函数内渲染,但它似乎不工作。 我的职能: 如果我这样做,效果会更好: 但不是这个: 我不明白为什么第二个代码不起作用