问题描述
但是,当他们选择'Now'选项然后改变主意并选择'specific'选项时,React崩溃而没有显示错误-它只是显示白屏。
相反选择选项时不会发生此问题-选择'specific'并且用户改变主意并选择'Now'
选择“特定” 后,将呈现新输入。
下面是代码的简化版本:
render() {
let startSelling = values.tickets.map((e,i) => {
if(e.startSelling == 'specific'){
return(
<div>
<DatePicker
className="datePicker"
timeIntervals={15}
onChange={event => this.props.setSpecificTime(event,i,'startSellingTime',values)}
selected={values.tickets[i].startSellingTime}
placeholderText='Select Date And Time'
showTimeSelect
dateFormat="Pp"
/>
</div>
)
}else{return <div></div>}
})
return (
<>
{this.state.tickets.map((e,i) => {
return (
<div>
<div>
<select
value={values.tickets[i].startSelling}
onChange={event => this.props.changeSellingTimes(event,'startSelling',values)}
>
<option value='' disabled>Start Selling Tickets</option>
<option value="Now">Now</option>
<option value="specific">Specific Date and Time</option>
{i===1 ? <option value="whenPrevIoUsSoldOut">When {values.tickets[0].ticketType} Is Sold Out</option>:<option value="whenPrevIoUsSoldOut" disabled={i==0}>When A PrevIoUs Ticket Is Sold Out</option>}
</select>
</div>
{startSelling[i]}
</div>
)
})}
</>
)
}
我要去哪里错了?
解决方法
找到了。选择“现在”会将日期另存为时刻对象。 Datepicker尝试读取它时导致反应崩溃。