2016-07-04 1 views
1

를 사용하여 작동하지 않으며 나는 그것이 나를 위해 작동하지 않습니다 발견 HTML :getDefaultProps 내가 react.js를 사용하여 아래의 예를 들어 getDefaultProps 방법을 사용하려고 reactjs

<script src="https://facebook.github.io/react/js/jsfiddle-integration-babel.js"> 
</script> 

<div id="container"> 
    <!-- This element's contents will be replaced with your component. --> 
</div> 

자바 스크립트 :

var RecentChangesTable = React.createClass({ 
    render: function() { 
    return (< table className = 'table' > { 
     this.props.children 
     } < /table>); 
    } 
    }); 

RecentChangesTable.Heading = React.createClass({ 
    render: function() { 
    var headingStyle = { 
     backgroundColor: 'FloralWhite', 
     fontSize: '19px' 
    }; 
    return <th style = { 
     headingStyle 
    } > { 
     this.props.heading 
    } < /th>; 
    } 
}); 

RecentChangesTable.Headings = React.createClass({ 
    render: function() { 
    var headings = this.props.headings.map(function(name, index) { 
     return <RecentChangesTable.Heading key = { 
     index 
     } 
     heading = { 
     name 
     } 
     /> 
    }); 
    return <thead > <tr> { 
     headings 
    } < /tr></thead > 
    } 
}); 

RecentChangesTable.Row = React.createClass({ 
    render: function() { 
     var trStyle = { 
     backgroundColor: 'aliceblue' 
     } 
     return <tr style = { 
      trStyle 
     } > 
     <td> { 
      this.props.changeSet.when 
     } < /td> <td> { 
     this.props.changeSet.who 
    } < /td> <td> { 
    this.props.changeSet.description 
    } < /td> </tr> 
} 
}); 

RecentChangesTable.Rows = React.createClass({ 
     render: function() { 
     var rows = this.props.changeSets.map(function(changeSet, index) { 
      return (< RecentChangesTable.Row key = { 
       index 
       } 
       changeSet = { 
       changeSet 
       } 
       />); 
      }); 
      return (<tbody> { 
       rows 
      } < /tbody>) 
      } 
     }); 



     var App = React.createClass({ 
     getDefaultProps: function() { 
      return { 
      headings: ['When happened ', 'Who did it', 'What they change'] 
      }; 
     }, 
     render: function() { 
      return (<RecentChangesTable> 
      < RecentChangesTable.Rows changeSets = { 
       this.props.changeSets 
      } 
      /> </RecentChangesTable>); 
     } 
     }); 


     var data = [{ 
     "when": "2 minutes ago", 
     "who": "Jill Dupre", 
     "description": "Created new account" 
     }, { 
     "when": "1 hour ago", 
     "who": "Lose White", 
     "description": "Added fist chapter" 
     }]; 

     var headings = ['When', 'Who', 'Description']; 
     var props = { 
     headings: headings, 
     changeSets: data 
     }; 

     React.render(< App changeSets = { 
      data 
     } 
     />, document.body); 

아무도 내가 여기에 누락되었다고 말할 수 있습니까?

+1

당신이'ReactDOM.render'을 의미합니까? 또한'App' 컴포넌트는'this.props.headings'를 리턴하지만 결코 사용하지 않습니까? 또한 코드를 읽기가 매우 어렵습니다. 그런 식으로 공간을 만들 생각은 어디서 났니? – azium

+0

응용 프로그램에서 getDefaultProps를 정의했지만 사용하지 마십시오. –

+0

getDefaultProps를 읽는 모든 방법을 시도했지만 여기서는 저에게 효과가 없습니다. 모든 코드 샘플이 나를 도와 줄 것입니다. –

답변

1

아래에 언급 한 바와 같이 나는 코드를 업데이트하고 그것은 나를 위해 일한 :

var RecentChangesTable = React.createClass({ 
    render: function() { 
    return (< table className = 'table' > { 
     this.props.children 
     } < /table>); 
    } 
    }); 

RecentChangesTable.Heading = React.createClass({ 
    render: function() { 
    var headingStyle = { 
     backgroundColor: 'FloralWhite', 
     fontSize: '19px' 
    }; 
    return <th style = { 
     headingStyle 
    } > { 
     this.props.heading 
    } < /th>; 
    } 
}); 

RecentChangesTable.Headings = React.createClass({ 
    render: function() { 
    var headings = this.props.headings.map(function(name,index) { 
     return <RecentChangesTable.Heading key={index} heading = { 
     name 
     } 
     /> 
    }); 
    return <thead > <tr> { 
     headings 
    } < /tr></thead > 
    } 
}); 

RecentChangesTable.Row = React.createClass({ 
    render: function() { 
     var trStyle = { 
     backgroundColor: 'aliceblue' 
     } 
     return <tr style = { 
      trStyle 
     } > 
     <td> { 
      this.props.changeSet.when 
     } < /td> <td> { 
     this.props.changeSet.who 
    } < /td> <td> { 
    this.props.changeSet.description 
    } < /td> </tr> 
} 
}); 

RecentChangesTable.Rows = React.createClass({ 
     render: function() { 
     var rows = this.props.changeSets.map(function(changeSet,index) { 
      return (< RecentChangesTable.Row key={index} changeSet = { 
       changeSet 
       } 
       />); 
      }); 
      return (<tbody> { 
       rows 
      } < /tbody>) 
      } 
     }); 



     var App = React.createClass({ 
       getDefaultProps:function(){ 
      return { 
      headings:['When happened','Who did it','What they change'] 
      }; 
     }, 

      render: function() { 
      return (<RecentChangesTable> 
       < RecentChangesTable.Headings headings = { 
       this.props.headings 
       } 
       /> < RecentChangesTable.Rows changeSets = { 
       this.props.changeSets 
      } 
      /> </RecentChangesTable>); 
     } 
     }); 

    var data = [{ 
     "when": "2 minutes ago", 
     "who": "Jill Dupre", 
     "description": "Created new account" 
    }, { 
     "when": "1 hour ago", 
     "who": "Lose White", 
     "description": "Added fist chapter" 
    }]; 

    var headings = ['When', 'Who', 'Description']; 
    var props = { 
     //headings: headings, 
     changeSets: data 
    }; 

    ReactDOM.render(< App {...props}/>, 
     document.getElementById('container'));