我正在尝试构建一个dateData对象,它看起来像这样:
const [dateData] = React.useState({
dateObject: new Date(),
get currentYear() {
return this.dateObject.getFullYear();
},
get currentMonth() {
return this.dateObject.getMonth();
},
get firstDayOfMonth() {
return this.dateObject(this.currentYear, this.currentMonth).getDay();
}
});
代码在get firstDayOfMonth()
崩溃,说this.currentYear is not a function
,但是吸气剂get currentYear()
和get currentMonth()
正确返回了预期的数据,所以我知道他们正在访问{{ 1}}。
我要完成的事情在Javascript中不可行吗?
答案 0 :(得分:2)
您的代码有错误。 请如下更新。
const [dateData] = React.useState({
dateObject: new Date(),
get currentYear() {
return this.dateObject.getFullYear();
},
get currentMonth() {
return this.dateObject.getMonth();
},
get firstDayOfMonth() {
return new Date(this.currentYear, this.currentMonth, 1);
}
});
答案 1 :(得分:0)
首先,让我告诉您代码为何崩溃。
您已经在此处调用/调用了构造函数日期 dateObject: new Date(),
。
同样,您尝试使用下面的方法调用它,这是错误的,这就是代码崩溃的原因。
get firstDayOfMonth() {
return new Date(this.currentYear, this.currentMonth, 1);
}
现在,解决方案是什么, 您可以使用新的日期来使用用户在以上答案中提供的解决方案>> 。
如果要坚持使用dateObject dateObject: new Date()
中可用的相同日期,则可以尝试以下代码:
get firstDayOfMonth() {
let bindedDate= Date.bind(this.dateObject)
return new bindedDate(this.currentYear, this.currentMonth).getDay();
}