我正在使用插件react-masonry-component尝试将其转换为es6但我似乎无法通过元素的渲染,因为它总是undefined
以下是我目前的代码。我错过了一些明显的东西吗?
import React, {Component} from 'react';
import Masonry from 'react-masonry-component';
const masonryOptions = {
transitionDuration: 0
};
class MasonryWidget extends Component {
render() {
const childElements = this.props.elements.map(function(element){
return (
<li className="image-element-class">
<img src={element.src} />
</li>
);
});
return (
<Masonry
className={'my-gallery-class'}
elementType={'ul'}
options={masonryOptions}
disableImagesLoaded={false}
updateOnEachImageLoad={false}
>
{childElements}
</Masonry>
);
}
};
export default MasonryWidget;
答案 0 :(得分:0)
map方法实际上是在数组上调用的Array.map方法。
在你的情况下,如果没有设置this.props.elements将是未定义的。
过去我遇到过类似的问题,这个SO答案有助于澄清它: