【发布时间】:2020-03-06 23:28:59
【问题描述】:
我以我对 ReactJs 非常陌生,并且可能试图解决一些非常基本的事情作为开头。
我有一段带有自定义 HTML 的代码:
示例组件
const Sample = ({ title, children }) => {
return (
<div class="panel">
<div class="title">
{title}
</div>
<div class="body">
{children}
</div>
</div>
);
};
附带问题 - 上面的正确名称是什么?一个片段?它看起来不是一个“组件”,而只是学习 React 的命名约定
利用组件
export default class ExampleComponent extends Component {
render() {
return <div class="page-body">
<div class="row">
<h1> Page 1 </h1>
<Sample title={<h1>Some title!</h1>}>
<p>This is my sample body!</p>
</Sample>
</div>
</div>
}
}
您可以看到“Sample”元素的内容自动作为 children 属性,但要设置标题,我必须明确设置“title”属性。理想情况下,我想做的是类似于以下内容:
使用示例组件的理想方式
export default class ExampleComponent extends Component {
render() {
return <div class="page-body">
<div class="row">
<h1> Page 1 </h1>
<Sample title="Some title!">
<Sample.Title>
<h1>This is my new way to do a title</h1>
</Sample.Title>
<Sample.Body>
<p>This is my sample body!</p>
</Sample.Body>
</Sample>
</div>
</div>
}
}
我以前在其他人创建的组件中使用过这种方法,但现在想自己做,发现很难找到一个简单的例子来做到这一点。
提前感谢您的任何指点!
【问题讨论】:
-
以上是一个组件。一个片段是
<>/* content */</> -
在你想要的输出中,你确定要通过
title="Some Title!"吗?这似乎违背了以下代码的目的;)
标签: javascript html reactjs components