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 : ''
  
  }
  
}