Reactjs 日期设置在react中不起作用;“使用状态”;
我试图在react中使用Reactjs 日期设置在react中不起作用;“使用状态”;,reactjs,use-state,Reactjs,Use State,我试图在react中使用useStatehook,并将传入的props值(startDate)设置为默认值。不幸的是,它总是设置在实际/当前日期。我这里出了什么错 我的代码: export type CalendarProps = { startDate: Date, endDate: Date, }; const SomeCalendarView: React.FC = (props: CalendarProps) => { console.log(props.start
useState
hook,并将传入的props值(startDate)设置为默认值。不幸的是,它总是设置在实际/当前日期。我这里出了什么错
我的代码:
export type CalendarProps = {
startDate: Date,
endDate: Date,
};
const SomeCalendarView: React.FC = (props: CalendarProps) => {
console.log(props.startDate);
const [selectedDay, setSelectedDay] = useState(props.startDate);
console.log(selectedDay);
....
我的控制台日志:
5月12日-是我的出发日期
5月14日-是我当前的日期/时间
为什么我得到了实际时间?有什么想法吗?我不知道,我的道具日期(
startDate
和endDate
)有延迟,并且useState
默认值会立即得到值(因为道具日期不可用,所以用实际/当前日期填充)。我必须使用useffect
设置道具一改变我的状态。就像这里:
const [selectedDay, setSelectedDay] = useState();
const [selectedStage, setSelectedStage] = useState();
useEffect(
() => {
setSelectedDay(props.startDate);
setSelectedStage(props.stages.valueSeq().first());
},
[props.startDate, props.stages],
);
使用
newdate
@bhojendraurauniyar,不幸的是,它给出了相同的结果。尝试使用“useState(new Date(props.startDate))”您在哪里使用此组件?@Hunor我无法复制它()。如果你能复制这个问题并分享这个链接,帮助你会更容易。我不认为这真的像你想象的那样。useEffects第二个参数是一个变量数组,当这些变量更新时,将在其上执行操作,并且useEffect仅在这些变量更新时触发,因此实际上,道具可能会更改,但useEffect已在任何属性更新时触发,因为它满足componentDidUpdate的功能。相反,您可以只传入一个空数组[],这将产生相同的效果(没有双关语),因为这表示您的组件装载/卸载。