为了账号安全,请及时绑定邮箱和手机立即绑定

React 自定义组件未渲染

React 自定义组件未渲染

慕神8447489 2023-10-14 16:42:17
*自定义组件未在 UI 上渲染,另请注意,我有 id: root 的元素function CComponent(prop) {  const element = (    <div className="container">      <div className={prop.classname}>{prop.content}</div>    </div>  );  return element;}const helloElement = (  <CComponent>{{ classname: "xyz", content: "helloWorld" }}</CComponent>);console.log(helloElement);ReactDOM.render(helloElement, document.getElementById("root"));
查看完整描述

4 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

您需要将 props 传递给组件,如下所示:

const helloElement = <CComponent classname='xyz' content='helloWorld' />


查看完整回答
反对 回复 2023-10-14
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

您将作为孩子传递您的值,要将值作为道具传递,您可以这样做:
<CComponent classname='xyz' content='helloWorld' />

查看完整回答
反对 回复 2023-10-14
?
慕森王

TA贡献1777条经验 获得超3个赞

根据反应文档:


React.createElement(

   type,

   [props],

   [...children]

)

<CComponent>{{ classname: "xyz", content: "helloWorld" }}</CComponent>这是由 babel 编译为:


var helloElement = React.createElement(CComponent, null, {

  classname: 'xyz',

  content: 'helloWorld'

})

但<CComponent classname='xyz' content='helloWorld' />


被编译为


var helloElement= React.createElement(CComponent, {

  classname: "xyz",

  content: "helloWorld"

})  

因此在 UI 上呈现


查看完整回答
反对 回复 2023-10-14
?
三国纷争

TA贡献1804条经验 获得超7个赞

使用 babel 7 和 React >= 16 是行不通的。CComponent 获取带有 {classname,content} 对象的 Children 属性。

您可以尝试稍微更改一下语法,它将完美呈现

<CComponent {...{ className: "xyz", content: "helloWorld" }} />


查看完整回答
反对 回复 2023-10-14
  • 4 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信