我在反应组件中使用了基础手风琴。
因此,如果获取组件以呈现静态HTML,则此代码可以工作,但是,如果我通过循环执行此操作,则不能单击手风琴。
UL反应代码:
return (
<ul className="accordion" data-accordion data-allow-all-closed>
this.state.test.map((data,index) => {
return (<LI id={data.ID} value={data.Intro} />)
}
</ul>
)
l ICO的
return (
<li className="accordion-item" data-accordion-item key={this.props.id}>
<a href="#" className="accordion-title">{this.props.value}</a>
<div className="accordion-content" data-tab-content>
<strong>{this.props.value}</strong>
<p>Test</p>
</div>
</li>
)
ComponentDidMount
new Accordion($(".accordion"), {
slideSpeed: 500,
multiExpand: true
});
fetch("URL")
.then(res => res.json())
.then(
(result) => {
this.setState ({
isLoaded: true,
items : [
{ ID: 1, Intro: "Label sdf1" },
{ ID: 2, Intro: "Label 2" },
{ ID: 3, Intro: "Label 3" }
]
})
},
(error) => {
this.setState({
isLoaded: true,
error
});
}
)
构造器
构造(道具){
super(props);
this.state = {
alerts:[],
items:[],
}
}
我编辑了@Pavelcode here来复制我的问题
你的LI
组件已破坏标记,<a>
没有结束标记。
应该是<a href="#" className="accordion-title">{this.props.value}</a>
。
编辑:
解决方案是在这个沙盒中:https://codesandbox.io/s/m76m5376ly?fontsize=14
请注意,在使用React时,必须使用文档中描述的许多方法之一初始化Foundation。在这个例子中,我使用componentDidMount
来初始化手风琴。