【发布时间】:2021-01-12 11:57:22
【问题描述】:
我使用嵌套组件编写了一个目录。每个组件都是一个标题列表。
我想为每个组件设置缩进效果(左边距:“20px”)以区分每个嵌套级别。
例子:
<Parent>
-->indent <Child/>
-->indent <Child2/>
-->indent (etc.)
</Parent>
知道如何动态地做到这一点吗?
这是我的代码:
import React from "react";
const TocContent = ({ props }) => {
return (
<div className="TOC">
{props.TOC.map((header) => (
<HeaderList key={header.objectId} header={header} props={props} />
))}
</div>
);
};
const HeaderList = ({ header, props }) => {
return (
<div>
<li
onMouseDown={(e) => e.stopPropagation()}
className="listing"
style={{}}
onClick={(e) =>
props.handleHeaderClick(
header.level,
header.treepath,
header.containsLaw,
header.sections,
header.secNum,
header.objectId,
header.id,
e.stopPropagation(),
)
}
>
{header._id}
</li>
{/* // if savedIndex === CurrentParent Index */}
{props.headerIndex === header.objectId &&
props.headers2.map((node2) => (
<HeaderList key={node2.objectId} header={node2} props={props} />
))}
{props.headerIndex2 === header.objectId &&
props.headers3.map((node3) => (
<HeaderList key={node3.objectId} header={node3} props={props} />
))}
{props.headerIndex3 === header.objectId &&
props.headers4.map((node4) => (
<HeaderList header={node4} key={node4.objectId} props={props} />
))}
</div>
);
};
export default TocContent;
【问题讨论】:
-
使用 CSS 类选择器有什么问题吗?如
Parent > Child1 > Child2 {...}。当然,您需要通过呈现的 html 进行选择,而不是尝试选择组件。 -
不知道为什么,但是在控制台中,当我尝试时,我得到“不支持的属性值”。 margin-left 属性是删除线。
标签: javascript html css reactjs