gpt4 book ai didi

javascript - 单击标题时动态展开/折叠

转载 作者:行者123 更新时间:2023-11-29 22:50:03 27 4
gpt4 key购买 nike

我有一组需要在 UI 中显示的项目,例如标题和其下的项目列表。
有一个父组件,我将在其中将此数据传递到如下所示的文件.
在此基础上显示了父子布局。
现在我需要根据标题的点击展开/折叠。

有一个可以附加到 div 的类“open”和“close”。基于它,它会折叠/展开。
关键是如何明智地做到这一点

谁能帮忙


import React from "react";
import Child from "./Child";
import Parent from "./Parent";

export default class Helper extends React.Component{
constructor(props: any) {
super(props);
this.state = {
parent:{},
children:{},
};
}

componentDidMount() {
this.setParentValue();
this.setChildValue();
}


render() {
const { parent, children } = this.state;
const { name } = this.props;
return (
<>
<div className="an-panel expand-panel expand-close">
<div className="an-panel-header">
<div className="title-holder">
<span className="toggle-icon far fa-plus-square" />
<span className="toggle-icon far fa-minus-square" />
<h5>{name}</h5>
</div>
<div className="action-holder">
<div className="status-holder">
<Parent
parent = {parent}
onSelect={this.handleParentClick}
/>
</div>
</div>
</div>
{children.map(({ id, name },id) => (
<div className="an-panel-body" key={id}>
<ul className="applications-list-holder">
<li>
<div className="name">{name}</div>
<div className="status">
<Child
children={children}
onSelect={this.setChildSwitchValue}
/>
</div>
</li>
</ul>
</div>
))}
</div>
</>
);
}
}

最佳答案

好的,让我给你解释一下,这是你的代码

    import React from "react";
import Child from "./Child";
import Parent from "./Parent";

export default class Helper extends React.Component{
constructor(props: any) {
super(props);
this.state = {
parent:{},
children:{},
navBarStatus: false,
};
}

componentDidMount() {
this.setParentValue();
this.setChildValue();
}

changeNavBar = (e, status)=>{
this.setState({navBarStatus: !status});
}


render() {
const { parent, children } = this.state;
const { name } = this.props;
return (
<>
<div className={`an-panel expand-panel ${this.state.navBarStatus ? "expand-open" : "expand-close"}`}>
<div className="an-panel-header" onClick={(e)=>this.changeNavBar(e, this.state.navBarStatus)}>
<div className="title-holder">
<span className="toggle-icon far fa-plus-square" />
<span className="toggle-icon far fa-minus-square" />
<h5>{name}</h5>
</div>
<div className="action-holder">
<div className="status-holder">
<Parent
parent = {parent}
onSelect={this.handleParentClick}
/>
</div>
</div>
</div>
{children.map(({ id, name },id) => (
<div className="an-panel-body" key={id}>
<ul className="applications-list-holder">
<li>
<div className="name">{name}</div>
<div className="status">
<ChildSetting
children={children}
onSelect={this.setChildSwitchValue}
/>
</div>
</li>
</ul>
</div>
))}
</div>
</>
);
}
}

您可以看到我在状态 navBarStatus 中获取了一个新属性。基于 navBarStatus 值,我正在更改 CSS 类,它将扩展/关闭附加的 div

关于javascript - 单击标题时动态展开/折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57654702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com