2017-02-14 80 views
1

我遇到了這樣一個錯誤的對象:不確定是不是(評估 '_this.props.date.getFullYear')

enter image description here

,這些都是我的代碼

export default class StarView extends Component{ 
static propTypes = { 
    date : React.PropTypes.instanceOf(Date) 
} 
constructor(props){ 
    super(props); 
    this.state = { 
     selectedYear: this.props.date.getFullYear(), 
     selectedMonth: this.props.date.getMonth(), 
     selectedDate: this.props.date.getDate(), 
     yesterdayYear : new Date(this.props.date.getTime() - 24 * 3600 * 1000).getFullYear(), 
     yesterdayMonth: new Date(this.props.date.getTime() - 24 * 3600 * 1000).getMonth(), 
     yesterdatDate : new Date(this.props.date.getTime() - 24 * 3600 * 1000).getDate(), 
     tomorrowYear : new Date(this.props.date.getTime() + 24 * 3600 *1000).getFullYear(), 
     tomorrowMonth : new Date(this.props.date.getTime() + 24 * 3600 *1000).getMonth(), 
     tomorrowDate : new Date(this.props.date.getTime() + 24 * 3600 *1000).getDate() 
    } 
}} 

我想從this.props.date獲取默認數據,但我不知道我得到錯誤的原因

+1

請出示來怎麼樣通過'date'支撐 –

+0

你是如何傳遞日期爲道具的升景組件 –

+0

放的console.log(道具)的構造函數,並添加輸出在你的問題。 –

回答

4

您已經定義了propTypes而不是defaultProps。據我所知,你想要的是道具date的默認值。在這種情況下defaultProps是你需要定義的。這裏有一個例子:

export default class StarView extends Component{ 
    static propTypes = { 
     date: React.PropTypes.instanceOf(Date) 
    } 
    static defaultProps = { 
     date: new Date() 
    } 
    constructor(props){ 
     super(props); 
     this.state = { 
      selectedYear: this.props.date.getFullYear(), 
      selectedMonth: this.props.date.getMonth(), 
      selectedDate: this.props.date.getDate(), 
      yesterdayYear: new Date(this.props.date.getTime() - 24 * 3600 * 1000).getFullYear(), 
      yesterdayMonth: new Date(this.props.date.getTime() - 24 * 3600 * 1000).getMonth(), 
      yesterdatDate: new Date(this.props.date.getTime() - 24 * 3600 * 1000).getDate(), 
      tomorrowYear: new Date(this.props.date.getTime() + 24 * 3600 *1000).getFullYear(), 
      tomorrowMonth: new Date(this.props.date.getTime() + 24 * 3600 *1000).getMonth(), 
      tomorrowDate: new Date(this.props.date.getTime() + 24 * 3600 *1000).getDate() 
     } 
    } 
} 
相關問題