Reactjs 如何在React JS中获取函数内部的状态值
我现在遇到问题,状态无法访问我函数的内部,因此错误类型为:无法读取未定义的开始日期属性。我有一个模块,需要根据选择的日期范围进行过滤。现在我有了父组件和子组件,我将所选范围发送给子组件。现在在我的孩子里面,我将道具选择范围设置为我的状态。当我试图控制台日志的状态,它说,开始_日期是未定义的。我将向你们展示我的父组件和子组件 错误: 无法读取未定义的开始日期的属性 父组件:Reactjs 如何在React JS中获取函数内部的状态值,reactjs,Reactjs,我现在遇到问题,状态无法访问我函数的内部,因此错误类型为:无法读取未定义的开始日期属性。我有一个模块,需要根据选择的日期范围进行过滤。现在我有了父组件和子组件,我将所选范围发送给子组件。现在在我的孩子里面,我将道具选择范围设置为我的状态。当我试图控制台日志的状态,它说,开始_日期是未定义的。我将向你们展示我的父组件和子组件 错误: 无法读取未定义的开始日期的属性 父组件: <Grap selected_range={this.state.selectionRange}/> th
<Grap selected_range={this.state.selectionRange}/>
this.state = {
start_date:''
}
dataDate = () => {
var date = new Date(), y = date.getFullYear(), m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);
var month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
var dDate = []
var startDate = this.state.start_date.startDate;
var now = new Date();
for (var d = new Date(startDate); d <= now; d.setDate(d.getDate() + 1)) {
var date = new Date(d);
let formatted_date = month[date.getMonth()] + " " + date.getDate();
dDate.push(formatted_date);
}
return dDate
}
componentDidMount() {
this.setState({
start_date:this.props.selected_range
})
}
componentDidUpdate(prevProps) {
if(this.state.start_date !== this.props.selected_range) {
this.setState({
start_date: this.props.selected_range
})
}
}
开始日期值:
此.state.start\u date
以我们从prop收到的相同形式声明
this.state = {
start_date: {
endDate : new Date(),
startDate : new Date(),
key : ''
}
}
执行此操作的原因是,在首次装入“”之前请先查看“”,从而导致错误。
您最好再看看生命周期
。
然后花一点时间库来帮助您使用dateformat。我猜这是错误的答案。您在哪里调用函数?@Brianthonpson hi我更新了我的内容。即使我这样格式化了它,我也不能调用函数内部的状态如果您想要更好的答案,请使用更多的代码行
In your children component,
this.state = {
start_date:''
}
type of start date is string. You can't access property on string.
Define it something like this.state = {
start_date: {}
}
this.state = {
start_date: {
endDate : new Date(),
startDate : new Date(),
key : ''
}
}