Я использую гармошку в своем реактивном компоненте.
Таким образом, этот код работает, если заставить компонент отображать статический 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>
)
код LI
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
});
}
)
* 1014 застройщик *
Конструктор (реквизит) {
super(props);
this.state = {
alerts:[],
items:[],
}
}
Я отредактировал @Pavelcode здесь , чтобы повторить мою проблему