【发布时间】:2018-04-08 01:50:58
【问题描述】:
我正在尝试制作一个带有 react 的手风琴应用程序,我有来自 API 的数据,并且我有应用程序的基本轮廓,但我不确定如何处理手风琴上的点击。
这是我的代码:
这是我设置数据的地方
App.js
class App extends Component {
constructor(){
super();
this.state = {
myData: {}
};
}
componentDidMount() {
axios.get(linkToApi)
.then(responseData => {
this.setState({ mydata: responseData.data });
})
.catch(error => {
console.log("Porblem getting data", error);
});
}
render() {
return (
<div className="App">
<Accordion data={this.state.myData} />
</div>
);
}
}
export default App;
手风琴.js
const Accordion = props => {
let accordionElements = Object.keys(props.data).map(function(keyName, keyIndex) {
return <AccordionElement
{...props.data[keyName]}
key={props.data[keyName].id}
/>;
})
return (
<ul className="accordion">
{accordionElements}
</ul>
);
}
export default Accordion;
AccordionElement.js
const AccordionElement = props => {
const handleOnClick = (e) => {
e.preventDefault();
//
}
return (
<li style={listItemStyle} onClick={handleOnClick}>
<h1 data={props}>{ props.name }</h1>
<ul style={descriptionStyle}>
<li>Description: { props.description }</li>
</ul>
</li>
);
}
export default AccordionElement;
我希望能够在单击标题时显示或隐藏其下方的描述。我真的不确定我会怎么做,有什么想法吗?
【问题讨论】:
标签: javascript reactjs accordion