【问题标题】:Rendering css style applied React stateless functional statement渲染 css 样式应用 React 无状态功能语句
【发布时间】:2019-06-06 21:29:56
【问题描述】:

我正在尝试在 React.js 中呈现用无状态功能组件编写的组件。当我尝试在下面呈现代码时,该元素没有显示出来。 React 和 React-Dom 脚本文件已正确插入。

const showMe = () => {
  return (
    <div className="hi"></div>
  )
};

ReactDOM.render(showMe, document.getElementById("target"));
#target {
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
  top:50%;
  transform:translateY(-50%);
  border:1px solid red;
  width:600px;
  height:500px;
}

.hi {
  border:1px solid blue;
  position:absolute;
  width:50%;
  height:40%;
  left:0;
  right:0;
  margin:0 auto;
  top:50%;
  transform:translateY(-50%);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="target">
</div>

【问题讨论】:

  • 它应该是&lt;showMe /&gt;,并且你应该使用大写的组件名称,如&lt;ShowMe /&gt;此外,你的HTML文件中必须有一个id为target的DOM元素。
  • 啊,所以使用大写首字母是语法的一部分,不仅仅是为了方便?谢谢你的建议!

标签: javascript reactjs functional-programming stateless


【解决方案1】:

const ShowMe = () => {
  return (
    <div className="hi"></div>
  )
};

ReactDOM.render(<ShowMe />, document.getElementById("target"));
#target {
  position:absolute;
  left:0;
  right:0;
  margin:0 auto;
  top:50%;
  transform:translateY(-50%);
  border:1px solid red;
  width:600px;
  height:500px;
}

.hi {
  border:1px solid blue;
  position:absolute;
  width:50%;
  height:40%;
  left:0;
  right:0;
  margin:0 auto;
  top:50%;
  transform:translateY(-50%);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="target">
</div>

【讨论】:

    【解决方案2】:
    ReactDOM.render(< ShowMe />, document.getElementById("target"));
    

    【讨论】:

    • 感谢您的回答。我也尝试过这种语法,但它仍然不起作用:(
    • 使用大写字母作为 JSX 组件的第一个字母就是答案!谢谢大家!