当用户选择一个选项然后将其更改为另一个选项时,React崩溃而没有显示错误

问题描述

用户选择任何选项时,我的代码即可正常工作。

但是,当他们选择'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尝试读取它时导致反应崩溃。