2017-04-27 71 views
0

林與插件react-masonry-component即時試圖將其轉換爲ES6,但我似乎無法讓過去元素的表現,因爲它始終是undefined陣營磚石返回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

過得好控制檯任何錯誤?你從哪裏傳遞數據'this.props.elements'你能顯示那個組件嗎? –

+0

它只是一個裸組件大部分我的錯誤是'TypeError:this.props.elements未定義'然後我將它導入到我的容器元素 – NooBskie

+0

然後,而不是this.props.element'在此定義一個'數組'組件是這樣的:'a = [{},{},{}]'每個對象都應該包含一個帶有圖片url的關鍵字src,它會工作:) –

回答

0

map方法實際上是在數組上調用的Array.map方法。

在你的情況是this.props.elements將是未定義的,如果它沒有被設置。

我在過去也有類似的問題,這個蘇答案清除了起來:

https://stackoverflow.com/a/32498429/5760421