【发布时间】:2018-08-27 14:55:28
【问题描述】:
我正在尝试使用 map 函数渲染 React 元素,并且我希望我的每个元素都有一个可折叠的组件(同时使用 Materialize CSS 框架)。但是,我无法让我的可折叠组件工作,即只有标题是可见的,并且它们对点击没有反应。
我有一种预感,这与事件侦听器有关,但一直无法找到解决我的问题的方法。
我尝试将
- 标记放在父元素 (Parent.js) 中,并在完成渲染后将事件侦听器附加到所有“可折叠”元素。可折叠组件对点击做出反应(未展开),但控制台正在打印有关缺少元素的 classList 的错误消息。
如何让我的折叠式展开?
谢谢!
Parent.js
Results =
this.state.results.result.map(function(item, index) {
return (
<div key={index}>
<Result
title={item.title}
link={item.link}
snippet={item.snippet}
id={sessionid}
/>
</div>
)}
)
Result.js
<ul className='collapsible'>
<div className="collapsible-header">
Hello
</div>
<div className="collapsible-body">
<span>
Lorem ipsum dolor sit amet.
</span>
</div>
</ul>
Result.js 元素内部:
componentDidMount() {
$('.collapsible').collapsible();
}
【问题讨论】:
-
g_stu,如果你能使用下面的库,请告诉我。如果您有任何疑问,请告诉我。
标签: javascript reactjs materialize