【发布时间】:2019-03-01 13:20:49
【问题描述】:
我希望在 Reactjs 项目中的较大集合中的两个 div 之一之间切换。总共有四对div,每对由一个'name' div和一个'summary' div组成。目标是在单击时从名称(默认可见)切换到摘要(默认隐藏),如果再次单击则切换回来。
下面的代码似乎可以完成,但是如果单击一个,它们都会改变(一次只能一个)。我认为这是因为共享状态,但我不知道如何捕获和处理单击的内容,因此它只能更改相应的 div。为了空间,我将四对中的两对放入 sn-p。
谢谢!
class App extends Component {
constructor() {
super();
this.state = {
shown: true,
};
}
toggle() {
this.setState({
shown: !this.state.shown
});
}
render() {
var shown = {
display: this.state.shown ? "block" : "none"
};
var hidden = {
display: this.state.shown ? "none" : "block"
}
return (
<div className="App">
<div className="row">
<div className="mod-sum-container-s ml-auto" style={ shown } onClick={this.toggle.bind(this)}>NAME 1...</div>
<div className="mod-sum-container-s mod-sum-active ml- auto" style={ hidden } onClick= {this.toggle.bind(this)}>SUMMARY 1...</div>
</div>
<div className="row">
<div className="mod-sum-container-s ml-auto" style={ shown } onClick={this.toggle.bind(this)}>NAME 2...</div>
<div className="mod-sum-container-s mod-sum-active ml- auto" style={ hidden } onClick= {this.toggle.bind(this)}>SUMMARY 2...</div>
</div>
)
【问题讨论】:
-
当用户点击name 1到summary 1,再点击summary 1到name1时是否需要切换?
-
是的,这是正确的 - 单击它会更改为摘要,然后如果用户再次单击,则返回名称。但它不会影响其他名称/摘要对。谢谢。
-
告诉我这是你需要的stackblitz.com/edit/react-sx3iis 吗?
-
非常感谢 - 我会试一试并告诉您。
-
这完全符合需要 - 非常感谢。
标签: reactjs