У меня есть компонент функции, который использует useState и компонент antD DatePicker. Я думаю, что путь React состоит в том, чтобы состояние selectedDate
обновлялось каждый раз, когда пользователь выбирает либо дату из средства выбора даты, либо щелкает стрелку вниз влево, которую я имею. Я не понимаю, почему он не перерисовывается при запуске handleDateChange и изменении selectedDate.
const [selectedDate, setSelectedDate] = React.useState(new moment().startOf("day"));
const handleDateChange = date => {
console.log(date);
setSelectedDate(date);
};
return (
<div>
<LeftOutlined onClick={() => handleDateChange(selectedDate.add(-1, "days"))} />
<DatePicker value={selectedDate} defaultValue={selectedDate} onChange={(date)=>handleDateChange(date)} />
</div>
)
Сейчас я думаю, что, возможно, даже несмотря на то, что момент () хранится в состоянии меняется, это все еще объект moment (), и состояние не распознает, что оно изменилось, и, таким образом, делает ставку на повторную визуализацию. Если это так, как я могу заставить его распознавать новую дату.
ОБНОВЛЕНИЕ:
Так что, похоже, мое лучшее предположение было правильным, я мой onClick для моя стрелка влево, чтобы добавить даты после того, как момент * .clone () -ed. Это лучший способ?
<LeftOutlined onClick={() => handleDateChange(selectedDate.clone().add(-1, "days"))} />