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