2017-02-08 110 views
0

当我写了下面的代码在阵营

import React,{Component} from 'react'; 
    import ReactDOM from 'react-dom'; 
    import './index.css'; 
    class Date extends React.Component{ 
     dataToString = (d) =>{ 
     return [ 
     d.getFullYear(), 
     d.getMonth + 1, 
     d.getDate() 
     ].join('-') 
    } 

错误,如下图所示,该日期的方法问谢谢大家。

Uncaught TypeError: d.getFullYear is not a function 
at Date._this.dataToString (index.js:10) 
at Date.render (index.js:18) 
at ReactCompositeComponent.js:796 
at measureLifeCyclePerf (ReactCompositeComponent.js:75) 
at 

在线,谢谢

回答

1

这不是正确的方式写作React Component

问题是:每当我们使用任何React.Component,我们必须定义一个render方法。那就是componentstarting点,这意味着这是React开始UI creation的地方,并且您没有定义render方法。

如果你只想写一个只包含一些generic methods一个文件,这样创建:

module.exports{ 

    dataToString : function(d){ 
     return [ 
     d.getFullYear(), 
     d.getMonth() + 1, 
     d.getDate() 
     ].join('-'); 
    }, 

    dateOnly: function(d){ 
     /*write your logic here*/ 
     return d; 
    }  

} 

您可以随时随地importing在项目中使用这些方法,此文件。

或者,如果你想将它写这样它作为一个component,然后定义render方法,也就像这样:

class DateClass extends React.Component{ 
     dataToString(d) { 
      return [ 
       d.getFullYear(), 
       d.getMonth() + 1, 
       d.getDate() 
      ].join('-') 
     } 

     render(){ 
      return <div>{this.dataToString(new Date())}</div> 
     } 
} 

让我知道如果你需要任何帮助。

+0

非常感谢,我的错误ID日期,我应该用户DateClass
class DateClass extends React.Component { – suwu150