【发布时间】:2021-12-19 14:55:14
【问题描述】:
我在为我的问题找到解决方案或正确方向时遇到问题。目前点击 -> className="List-section" 会显示 -> className="Paragraph-container" 中的信息,但它有 4 个部分,我只想允许一个部分一次打开。目前我可以打开所有这些并显示出来。 如果有帮助,这里是原型的链接(以及流程应该如何): https://www.figma.com/proto/ooya7hVTx4BvdwQQFPXZcj/CCT-Lab-task?node-id=5%3A711&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=5%3A509
提前感谢所有帮助!
父组件
function App() {
const data = [
{
title: "Build test task",
items: [
"Create repositor",
"Implement designs",
"Implement functionality",
],
},
{
title: "Submit your test task",
items: [
"Open email client",
"Sent link information to careers@cornercasetech.com",
],
},
{
title: "Participate in tech interview",
items: ["Talk with HR", "Talk with Tech team"],
},
{
title: "Reciece anster",
items: ["Receive answers", "Start your IT career"],
},
];
return (
<div className="App">
<header className="App-header">
<h1>CCT Lab Process</h1>
</header>
<div className="App-content">
{data.map((dataObject, index) => (
<ListItem key={index} listData={dataObject} listNumber={index + 1} />
))}
</div>
</div>
);
}
子组件
function ListItem({ listNumber, listData }) {
const [isShownOne, setIsShownOne] = useState(false);
return (
<div className="List">
<div className="List-section" onClick={() => setIsShownOne(!isShownOne)}
>
<div className="Section-item">{listNumber}</div>
<p className="Section-title">{listData.title}</p>
</div>
{isShownOne && (
<div className="List-paragraph">
{listData.items.map((paragraphItem, index) => (
<div className="Paragraph-container" key={index}>
<CheckedIcon />
<p className="Paragraph-item">{paragraphItem}</p>
</div>
))}
</div>
)}
</div>
);
}
顺便说一句,尝试谷歌搜索所有可能的选项,但无法找到解决方案。有些人建议检查父组件中的 id 并将逻辑传递给子组件。感觉有点失落!
【问题讨论】:
-
如果您在这里搜索“react 手风琴”,您可能会找到一个很好的答案。
标签: javascript reactjs react-hooks onclick components