如何在Qwik中正确传递JSX.Element作为组件Props?
问题原因及解决方法
1. 最核心的错误:Props属性名称不匹配
你父组件传递给Dropdown的props属性名是element,但子组件定义的props接收的是button——两者名称完全不一致。这会导致子组件里的button值为undefined,但你的console.log显示button是有效的JSX节点,说明你实际代码里大概率存在笔误,比如父组件应该写button={<h1>Hello world</h1>},或者子组件props应该定义为element: JSX.Element。
2. 若Props名称匹配后仍显示[object Object]
如果已经修正了props名称,还是出现这个问题,检查以下两点:
- 子组件是否错误转换了JSX节点:比如不小心用了模板字符串
{${button}}或者调用button.toString(),这会把JSX对象强制转为字符串[object Object]。确保子组件里直接写{button}即可。 - 类型定义是否准确:Qwik中的JSX节点类型建议用
JSXNode而非JSX.Element,修改子组件的props类型:import type { JSXNode } from '@builder.io/qwik'; export default component$((props: { button: JSXNode }) => { const { button } = props; return ( <div> {button} </div> ); });
从你的console.log输出看,button是有效的Qwik JSX节点对象,所以修正props名称后应该就能正常渲染出<h1>Hello world</h1>元素。
内容的提问来源于stack exchange,提问作者Josu16
相关产品推荐
相关产品推荐

