首页 > 解决方案 > 更改日期和时间后,DatePicker 显示旧值(React,DatePicker)

问题描述

我有DatePicker

    import DatePicker from 'react-datepicker';

    const { state } = useLocation();
    const [dateVisit, setDateVisit] = useState(new Date());
    
    const editVist = async (e) => {
    e.preventDefault();
    
    console.log(dateVisit)
    }
    .....
    <form onSubmit={(e) => editVist(e}>
     <DatePicker
       selected={dateVisit}                                            
       onChange={date => setDateVisit(date)}
       value = {state.dataFiresStamp}                                            
       timeInputLabel="Time:"
       dateFormat="MM/dd/yyyy h:mm aa"
       showTimeInput                                            
       withPortal
      />
   </form>

值是正确的设置和显示。

现在当我改变时Date&Time。然后单击editVisit。Intoconsole向我显示更正的新日期,但value into DatePicker has been not changed(仍然显示旧值)。

标签: reactjsreact-nativedatetimetimedatepicker

解决方案


为什么不把dateVisitstate 放在valueDatePicker 的 prop 中呢?

你应该可以state.dataFiresStampdefaultValue

<DatePicker
   selected={dateVisit}                                            
   onChange={date => setDateVisit(date)}
   value = {dateVisit} // changed here
   defaultValue={state.dataFiresStamp} //added here                                            
   timeInputLabel="Time:"
   dateFormat="MM/dd/yyyy h:mm aa"
   showTimeInput                                            
   withPortal
  />

推荐阅读