diff options
Diffstat (limited to 'packages')
4 files changed, 14 insertions, 2 deletions
diff --git a/packages/astro/src/compiler/transform/head.ts b/packages/astro/src/compiler/transform/head.ts index 99ba47c87..e608f8135 100644 --- a/packages/astro/src/compiler/transform/head.ts +++ b/packages/astro/src/compiler/transform/head.ts @@ -26,7 +26,7 @@ export default function (opts: TransformOptions): Transformer { } // Initialize eoh if there are no elements eoh.enter(node); - if (node.attributes && node.attributes.some(({ name }: any) => name.startsWith('client:'))) { + if (node.attributes && node.attributes.some(({ name }: any) => name?.startsWith('client:'))) { hasComponents = true; return; } diff --git a/packages/astro/test/fixtures/react-component/src/components/PropsSpread.jsx b/packages/astro/test/fixtures/react-component/src/components/PropsSpread.jsx new file mode 100644 index 000000000..044c2a019 --- /dev/null +++ b/packages/astro/test/fixtures/react-component/src/components/PropsSpread.jsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export default (props) => { + return <div id="component-spread-props">{props.text}</div>; +} diff --git a/packages/astro/test/fixtures/react-component/src/pages/index.astro b/packages/astro/test/fixtures/react-component/src/pages/index.astro index 6ec7004f6..a64e076ce 100644 --- a/packages/astro/test/fixtures/react-component/src/pages/index.astro +++ b/packages/astro/test/fixtures/react-component/src/pages/index.astro @@ -2,7 +2,12 @@ import Hello from '../components/Hello.jsx'; import Later from '../components/Goodbye.vue'; // use different specifier import ArrowFunction from '../components/ArrowFunction.jsx'; +import PropsSpread from '../components/PropsSpread.jsx'; import {Research2} from '../components/Research.jsx'; + +const someProps = { + text: 'Hello world!', +}; --- <html> @@ -13,7 +18,7 @@ import {Research2} from '../components/Research.jsx'; <Hello name="world" /> <Later name="baby" /> <ArrowFunction /> - + <PropsSpread {...someProps}/> <Research2 client:idle /> </body> </html> diff --git a/packages/astro/test/react-component.test.js b/packages/astro/test/react-component.test.js index c0f7d383a..6f10b2914 100644 --- a/packages/astro/test/react-component.test.js +++ b/packages/astro/test/react-component.test.js @@ -41,6 +41,8 @@ React('Can load React', async () => { assert.equal($('#react-h2').text(), 'Hello world!'); assert.equal($('#react-h2').attr('data-reactroot'), undefined, 'no reactroot'); assert.equal($('#arrow-fn-component').length, 1, 'Can use function components'); + assert.equal($('#component-spread-props').length, 1, 'Can use spread for components'); + assert.equal($('#component-spread-props').text(), 'Hello world!'); }); React('Includes reactroot on hydrating components', async () => { |