2015-07-19 27 views
0

所以我嘗試建立一些陣營成分對ES6執行標準,但在服務器上的數據我的代碼中斷取我不斷收到Uncaught TypeError: Cannot read property 'map' of undefinedReactJS獲取服務器數據以適當的方式

import React from 'react'; 

class PropertiesList extends React.Component { 

    constructor(props){ 

    super(props); 
    this.state = { data:[]} 
    } 


    loadPropertiesFromServer() { 
    $.ajax({ 
     url: this.props.url, 
     dataType: 'json', 
     success: (data) => { 
     console.log(data); 
     this.setState({data: data}); 
     }, 
     error: (xhr, status, err) => { 
     console.error(this.props.url, status, err.toString()); 
     } 
    }); 
    } 

    componentDidMount() { 
    this.loadPropertiesFromServer(); 
    setInterval(this.loadPropertiesFromServer.bind(this), this.props.pollInterval);; 
    } 

    render() { 
    var propertyNodes = this.props.data.map((property) => { 

    return (<Property> 
        {property.description} 
      </Property>) 
    }); 

    return <div className="row"> 
     <div className="col-lg-12"> 
      <h1>Available Properties</h1> 
      {propertyNodes} 
     </div> 
    </div>; 
    } 
} 

export default PropertiesList 

切入點

import React from 'react'; 
import PropertiesList from './../components/propertylist.jsx'; 
import Filters from './../components/filter.jsx'; 
import Properties from './../models/PropertiesModel.js'; 
    class TransProperties extends React.Component { 

     render() { 

     return <div className="row"> 
      <div className="col-lg-9"> 
       <PropertiesList url="/properties.json"/> 
      </div> 
      <div className="col-lg-3"> 
       <Filters/> 
      </div> 
     </div>; 
     } 
    } 

    export default TransProperties 
+0

如何使用t他的代碼?你不能在同一個模塊中「導出默認」2次 – Amit

+0

那些是2個不同的文件 – fefe

+0

我編輯了你的問題以顯示它是2個不同的文件,但它看起來不完整(不是第二個文件缺少'import react ... '?)。代碼中有什麼遺漏嗎? – Amit

回答

1

在您的render()方法中,您嘗試訪問this.props.data而不是this.state.data