Reactjs 对象作为子对象无效。(发现:Date(印度标准时间))如果要呈现子对象集合,请改用数组

Reactjs 对象作为子对象无效。(发现:Date(印度标准时间))如果要呈现子对象集合,请改用数组,reactjs,Reactjs,您好,我正在使用react日历 我的代码如下所示: class ListingProcess extends Component { constructor(props) { super(); this.state = { location: { startDate: '', endDate: '',

您好,我正在使用react日历

我的代码如下所示:

   class ListingProcess extends Component {
        constructor(props) {
            super();
            this.state = {
                location: {
                    startDate: '',
                    endDate: '',
                },
            this.handleStartDate = this.handleStartDate.bind(this);
            };

 handleStartDate(date){
        alert(date)
        var locationObj = this.state.location;
        locationObj.startDate = date;
        this.setState({location: locationObj})

    }


render() {
    return (
      <div>
        <Calendar
          onChange={this.handleStartDate}
          value={this.state.location.startDate}
        />
      </div>
    );
  }
}
每当我在控制台上设置开始日期的值时,状态为“显示错误”

错误是: 对象作为找到的React子对象无效:2019年9月20日星期五00:00:00 GMT+0530印度标准时间。如果要呈现子对象集合,请改用数组


请提供帮助。

可能您正在尝试直接渲染日期。不知何故,您需要从日期对象获取所需的信息。我在这里举个例子

另外,不要像在handleStartDate方法中的代码中那样直接改变状态。你应该像我一样更新你的状态,而不是直接改变它

class ListingProcess extends React.Component {
  constructor(props) {
    super();
    this.state = {
      location: {
        startDate: "",
        endDate: ""
      }
    };
    this.handleStartDate = this.handleStartDate.bind(this);
  }

  handleStartDate(startDate) {
    this.setState(state => ({
      location: {
        ...state.location,
        startDate,
      }
    }));
  }

  printDate() {
    return <p>{this.state.location.startDate.toDateString()}</p>;
  }

  render() {
    return (
      <div>
        <Calendar
          onChange={this.handleStartDate}
          value={this.state.location.startDate}
        />
        {this.state.location.startDate && this.printDate()}
      </div>
    );
  }
}

您编写了this.handleStartDate=this.handleStartDate.bindthis;在这个.state里面,这是一个输入错误吗?你在第一次渲染时得到日历了吗?是的,我在第一次渲染时得到了日历。这段代码工作正常。您是否在代码中的任何位置使用此.state.location?是的,我正在使用它