【发布时间】:2021-06-14 21:51:02
【问题描述】:
我试图在单击其兄弟 div 时切换隐藏和显示无序列表。起初我的代码是切换所有 div,我为每个列表添加了唯一标识符并修改了我的代码,但现在没有任何东西被切换。 非常感谢您的帮助。
子组件
import React from 'react';
const List = ({toggle, type, sum, i, hidden}) => {
let visibility = {hidden} ? 'block' : 'none';
return(
<div>
<div onClick={() => toggle(i)} style={{background: 'blue'}}>{type}</div>
<ul>
{
sum.map((item) => {
return <div style=style={{ display: visibility}}>{item}</div>
})
}
</ul>
</div>
)
}
export default List;
父组件
import React from 'react'
import List from './List';
import listData from './listData.js';
class App extends React.Component {
constructor(){
super();
this.state = {
show: listData.map((element) => true)
}
}
hideShow = (index) => {
const newShowStatus = [...this.state.show];
newShowStatus[index] = !this.state.show[index];
this.setState({show: newShowStatus});
}
render(){
const list = listData.map((item, index) => {
return <List
type={item.type} sum={item.summary}
i={index}
toggle={this.hideShow.bind(this)}
hidden={this.state.show[index]}/>
})
return(
<div className="tc ma4">
{list}
</div>
)
}
}
export default App;
【问题讨论】:
标签: reactjs