diff --git a/.changeset/nasty-views-study.md b/.changeset/nasty-views-study.md new file mode 100644 index 00000000000..9c6b298c171 --- /dev/null +++ b/.changeset/nasty-views-study.md @@ -0,0 +1,5 @@ +--- +'@qwik.dev/core': patch +--- + +fix: removing children from var props diff --git a/packages/qwik/src/core/shared/jsx/jsx-internal.ts b/packages/qwik/src/core/shared/jsx/jsx-internal.ts index 05d926b636a..82b294d1422 100644 --- a/packages/qwik/src/core/shared/jsx/jsx-internal.ts +++ b/packages/qwik/src/core/shared/jsx/jsx-internal.ts @@ -66,12 +66,12 @@ export const _jsxSplit = >( for (const k in varProps) { if (k === 'children') { children ||= varProps.children as JSXChildren; - varProps.children = undefined; + delete varProps.children; } else if (k === 'key') { key ||= varProps.key as string; - varProps.key = undefined; + delete varProps.key; } else if (constProps && k in constProps) { - varProps[k] = undefined; + delete varProps[k]; } } } diff --git a/packages/qwik/src/core/tests/inline-component.spec.tsx b/packages/qwik/src/core/tests/inline-component.spec.tsx index 74ce32a265d..76e41d55631 100644 --- a/packages/qwik/src/core/tests/inline-component.spec.tsx +++ b/packages/qwik/src/core/tests/inline-component.spec.tsx @@ -6,6 +6,7 @@ import { Fragment as Signal, Slot, component$, + jsx, useSignal, useStore, useVisibleTask$, @@ -41,6 +42,16 @@ const ChildInline = () => { return
Child inline
; }; +const OwnKeys = { + HAccordionRoot: (props: any) => { + return jsx('div', props); + }, + Root: (props: any) => , + Item: component$(() => { + return <>; + }), +}; + describe.each([ { render: ssrRenderToDom }, // { render: domRender }, // @@ -732,4 +743,16 @@ describe.each([ ); }); + + it('should remove children from varProps and not throw', async () => { + const Cmp = component$(() => { + return ( + + + + ); + }); + + await expect(render(, { debug })).resolves.not.toThrow(); + }); });